Releases: nathanieltooley/gokemon
v3.2
v3.1
fixes some big problems with multiplayer
Changelog
- 998357e chore: removed some logs
- 259e20a fix: fixed return value of hostNetworkHandler
- 4eba50f fix: forgot to change package name of action types
- c9f065b fix: gob encoding error with rand.PCG
- 2f4ca46 fix: oob panic during action sorting
- a6936e1 fix: tick command is now only called once
- dc5967a fix: turn now updates for client in multiplayer game
Released by GoReleaser.
v3.0
Important changes
- 6d7daef feat(abilities): add cloud-nine and air-lock
- 963ffe4 feat(gokemon): add gender selector in pokemon edit menu
- e44956d feat(gokemon): add list of contact moves
- a213004 feat(gokemon): implement contact abilities
- d41846b feat(golurk): add Hail damage
- c7528f4 feat(golurk): add basic verification
- 9d7396b feat(golurk): add clearing of infatuation
- ff3c493 feat(golurk): add consts for other weathers
- 3757892 feat(golurk): add gender
- 077d619 feat(golurk): add infatuation event
- fcd4ddf feat(golurk): add sandstorm damage changes
- b0f5d02 feat(golurk): add snow and hail accuracy buff for blizzard
- b476414 feat(golurk): add snow and hail solar debuff
- 5487f56 feat(golurk): add snow defense buff
- f520847 feat(golurk): add validation for level
- eb8c08c feat(golurk): default gender is unknown
- e9a3141 feat(golurk): freeze now fails in the sun
- 57e3a60 feat(golurk): impl ability oblivious
- 5ff8837 feat(golurk): impl infatuation checks
- 2a839e3 feat(taunt): impl taunt
- 9e750b4 feat: add debugging flags
- fb2ce32 feat: add info about Pokemon data
- 4a26dd6 feat: add nickname getters and setters
- c6e01cc feat: impl application of infatuation
- 3da2082 fix(data): capitalization should now be consistent in json files
- 83d8ac8 fix(golurk): add check for unknown attackPokemon gender
- f919048 fix(golurk): default value of InfatuationTarget set to 0 instead of -1
- bf7730f fix(golurk): fix some issues with ai move selection
- 7eb639d fix(golurk): miss json tags in struct literal
- 990c0f2 fix(golurk): natural-cure now only activates when pokemon has a status
- 6233150 fix(golurk): pokemon now clear their stat changes after switching-out
- 79c86ab fix(golurk): shed-skin now only activates when pokemon has status condition
- 05a718e fix(golurk): switching now clears stat changes
- aad7b9d fix(golurk): taunt is now cleared when switching
- 3bd8a70 fix(golurk): tests now load data first
- 2c8b6c8 fix(golurk): type switch now correctly switches over values not pointers
- 5b8087f fix(scripts): broken imports from old project structure
- 32baa1f fix(scripts): generation flag should now work for ability script
- f573721 fix: actions could be sent multiple times if spammed
- 3e20fff fix: dependency changes in tests
- 079e5a0 fix: export required fields for encode/decoding
- 1601ef8 fix: get rid of test logs
- 0e451e3 fix: incorrect directory permissions
- 9f71e91 fix: incorrect verbosity levels
- 585c5ca fix: loading bugs
- 4eee9a3 fix: make json names snake_case
- 1e3ac55 fix: most dependencies should be fixed
- 3f1d928 fix: most dependency changes should be correct in both modules
- fc6c5f7 fix: move name typo
- f1cac5f fix: nil map insertion
- 598db65 fix: pokemon editor now shows moves correctly
- 5a7d820 fix: set len instead of cap
- 836f152 fix: singleplayerHandler sent wrong msg type
- 4658089 refactor(scripts): move all scripts into a single bin package
- ab50468 refactor: finish golurk
- 49039e4 refactor: move data loading into golurk
- 92ea955 refactor: move data to poketerm package
- bcd5bbf refactor: move main.go into poketerm
- b19381c refactor: move smart_ai_test to tests package
- 34dc389 refactor: part 1
- 9eb51f3 refactor: switch Nickname accessors to Name() calls
- ca35a15 revert: make Nickname public again so it can be marshalled
- ecea1cc test(abilities): add tests for cloud-nine and air-lock
- 23e5d56 test(golurk): add new helper function
- 730b9a1 test(golurk): add snow and hail debuff test
- f924e2e test(golurk): add snow def buff test
- 9bc0f2b test(golurk): add sun tests
- 9a70e77 test(golurk): add test for hail damage
- e6fe7f5 test(golurk): add test for rain
- cc5bb47 test(golurk): add test for sandstorm damage changes
- 7cf1299 test(golurk): add tests for infatuation
- 3f61ae2 test(golurk): add tests for taunt and speed affecting turn order
Notes
The biggest change to repo in this release was the separation of the Pokemon battle logic and the TUI application. This was done for two main reasons. First, there were some pretty bad circular dependencies and an unnecessary coupling of these two distinct halves of the program. Second, I may or may not release the Pokemon library "Golurk" separately so I figured it would be nice to be ready for this possibility.
Released by GoReleaser.
v2.0
Changelog
Major Changes Include:
- Almost all Gen 3 abilities except Sticky Hold, Flame Body, Poison Point, Effect Spore, Rough Skin, Plus, Minus and parts of Oblivious (infatuation and taunt)
- Moved backend code to an "Event" system where rather than sending a new copy of the game state every turn, its a series of events the determine the change in state.
- In-game pokemon info panel now shows the name of the Pokemon species as well as the nickname.
- Pokemon can no longer attack while dead
- In-game UI now no longer defaults to "select pokemon panel" the turn after your lead Pokemon dies.
- Add dynamic type changing during a battle (like through Color Change or Forecast)
- Percent-based healing should now round up from zero
- Shedninja now properly forced to have 1 HP
- Percent-based damage should now round up from zero
Commit list
- 0bc7bb1 chore: clean up go warnings
- b275b8c chore: remove some logs
- 26d5264 chore: remove test file
- e6f6457 debug: add some extra logs
- 065e76c feat(abilities): add check for illuminate
- 3bbbbd1 feat(abilities): add color-change
- 34c7dbf feat(abilities): add early-bird
- 6f0928e feat(abilities): add forecast
- 000ca5c feat(abilities): add liquid-ooze
- 9c5890d feat(abilities): add marvel-scale
- de2732b feat(abilities): add natural-cure
- 7e75468 feat(abilities): add serene grace
- 3fc738b feat(abilities): add shed-skin
- 07d9b91 feat(abilities): add soundproof
- a567bbb feat(abilities): add synchronize
- df2fa35 feat(abilities): add trace
- 87f5026 feat(abilities): add trapping moves
- eca96ce feat(abilities): add truant
- 103d626 feat(abilities): add white-smoke, clear-body, and hyper-cutter abilities
- 6806c11 feat(events): add EndOfTurnAbilityCheck event
- 535e439 feat(events): events are now transmittable using gob
- 77664b0 feat: UI now shows type changes that occur during battle
- 7bacb4b feat: ability grabber now has flag to limit the generation of an ability
- 9b53629 feat: add check for pure-power along with huge-power
- e36e325 feat: add check for vital-spirit
- f75030f feat: add check for water-veil burn immunity
- ec45e28 feat: add damage invuln and stat boost for lightning rod
- 7275c27 feat: add drought ability
- ba39167 feat: add fixed RNG sources
- d645939 feat: add flash-fire implementation
- 9bcfa51 feat: add gen 2 and gen 3 pokemon
- 8154242 feat: add guts ability
- 8763bb0 feat: add hustle ability
- 845e8b9 feat: add keen-eye
- f24ae30 feat: add levitate check in damage calc
- 104601b feat: add sandstream ability
- 929fc0e feat: add suction-cup check during force switching
- df07333 feat: add thick fat check in damage
- 150af06 feat: add typechangeevent
- b6e2173 feat: allow pausing of logging globally
- e57d832 feat: base pokemon name is now shown along with nickname
- 1b75faf feat: force switching moves now check if there are any pokemon to switch to
- c7d732c feat: game now forbids a player to switch if opponent abilities dont let them
- 258f381 feat: game now shows events that happen the turn a player loses
- 4be0a4b feat: global log level can now be changed after initialization
- d3c4fea feat: implement speed-boost
- a9819bb feat: limit abilities to gen 3
- bce4b1f feat: make rng tied to battle and synced across network
- b46303d feat: pokemon.speed() now factors in weather conditions
- 64821e0 fest: add thick fat test
- bff2b29 fix(event): SimpleAbilityActivationEvent would pass in pkm name not ability name
- 7965228 fix(events): bug fixes to Switch and Ailment events
- 0a33994 fix(events): event queue popping wrong side of queue
- a457f71 fix(events): fix some warnings
- 6a6edd9 fix(events): sandstorm damage now rounds up
- eeb04d6 fix(main): main showing empty messages
- 1cc2c12 fix(multiplayer): change concreteNames to be in core package
- 00f3ac4 fix: HOST and PEER consts now start from 1 to avoid default 0 value
- 6987665 fix: TurnStartEvents should now update before SwitchEvents
- 28e81bb fix: UI would check len at incorrect time
- 81cd5ff fix: accidental overwrite instead of append
- be40a6b fix: add check for struggle in color-change activation
- 27ccb69 fix: add fallback and warning when selecting AI move
- 15343a1 fix: apply state events before gameover or force switch check
- 238cf14 fix: color change would activate even if already that type
- 9050761 fix: damage based on a percentage of health no longer do 0 damage
- 3a9b59b fix: damage calc multipliers should now be done and rounded in correct order
- 0730a59 fix: damage calc now properly gets pokemon type effectiveness
- 0a9558c fix: damage now adds random variation
- b3204bb fix: draining moves would heal defender
- df83feb fix: fix test regressions
- af0bc78 fix: force switch test now uses event system
- cac55d6 fix: force switches should now work correctly with state events
- a711269 fix: forgot to check for synchronize oops
- 220bf6b fix: heal by percent now rounds up heal amount
- 00ba231 fix: high source now uses correct max value
- 96f8273 fix: incorrect heal message
- 57c6eef fix: index oob when there are no actions
- e1f5b4c fix: intro switch message is now the correct version
- 0b6e4f7 fix: low RNG source now returns 0 instead of 1
- 4ffa78e fix: move color-change to after attack
- 03f6ef4 fix: move.Meta is no longer a pointer
- 1fc73d1 fix: moved endOfTurnAbilities to commonEndOfTurn
- c75714c fix: pokemon could attack after death
- 2658e52 fix: pokemon panel would be open by default after force switch
- 5c6f2f9 fix: pre-attack check would not run because it was expecting pointer not value type
- 25d2937 fix: random spread now selects values from correct range
- ef22d16 fix: rename damage_test to fit go testing requirement
- c3caa4a fix: round after each multiplication in damage calc
- 175aaf9 fix: round should have been ceil
- fa9971f fix: shedinja is now forced to have 1-hp
- 6cbdfa4 fix: speed-boost no longer activates the turn a pokemon switches in
- 8e2c8df fix: start of turn flags are now reset before events are added or checked
- ca3ea8f fix: states from ailments are now used
- 32799d4 fix: stop saving stage count in json
- f955f64 fix: toxic is now blocked and inited properly
- a61b27a fix: trace activation text would use wrong ability
- bd66020 refactor(events): first compilable version
- 8e1f31f refactor(main): add FSM for more clear state management
- 0db0679 refactor(tests): add dummy pokemon function with ability
- 0181404 refactor(tests): add simple state function
- 40b2589 refactor: major package refactor
- dbcbf81...
v1.3
Changelog
Minor patch update fixing a problem with the AI attacking instead of sending out pokemon on first turn
- ebcfbaa feat: config now controls logging level
- 55beb22 feat: init logs can now be suppressed (mainly for testing)
- eb567d1 fix: ai is now forced to switch in on first turn
Released by GoReleaser.
v1.2
Changelog
Small patch update this time. Mostly some under the hood stuff but a major bug was fix relating to selected a move. Check commit 3dfa3a6 for more info.
Note About Version Number: I've decided to switch to a slightly different version of SemVer where MAJOR and MINOR are combined (MAJOR/MINOR.PATCH). I figure there's never gonna be a version "2.0.0". I don't know if there would ever be a version "1.0.0" to be honest. So I think this system makes more sense
- da99410 chore: remove networking test files
- 3d982d3 fix: add failsafe if AI pokemon has no moves
- 69b0b05 fix: gameover values were inverted
- 3dfa3a6 fix: movepanel used host's pokemon moves for struggle check
- cd593d1 refactor: invert gamemain gameover check
- aaffe9c refactor: move networking handling to gamemain from stateupdater
- 416bece refactor: remove gamenetinfo struct
- 8c489af refactor: remove unused stateupdater types
- 089ebad refactor: rename vars in ProcessTurn to refer to client not AI
- 2ac1ef9 refactor: split up pokemon.go into damage and poke_builder
Released by GoReleaser.
v0.1.1
Changelog
This release mainly includes some major bug fixes involving bugs with networking. The worst offender being switching which now no longer crashes the program. There are also some AI changes and small QOL bug fixes. Check the commit log below for more info.
- 56ecfe6 build: depen changes
- b0ed059 feat: add more AI options
- 9ea5e6e feat: add tests for new ai actions
- bf69577 feat: first turn now activates switch in abilities
- 5c36857 feat: improved switch in messages
- 18f8b2f fix: forgot to rename copied code oops
- c3865f9 fix: subpanels in main gameview would only show host's moves and pokemon
- cf1ec7c fix: switch action would split on newlines too many times
- 411e1b2 fix: switching from ingame panel would send wrong playerside
- 17cebfb fix: turn number is now properly synced between client and host
- 18364b4 refactor: switch game over check to tagged switch statement
Released by GoReleaser.
v0.1.0
This the first release so no changelog!
Check the README for more info and instructions on installation.
Released by GoReleaser.