[DD╢╢DD@@@╟ ╩╩╟╧╧ ╟╩╩ ╩╩PfwevwwPfw033333033330333300```ff`ff`` >ю?лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллалллллллллллллллллллллллцллллллЪЪлЪЪоллолЪЪоЭЪлллллллллллллллллллллллллллллллллллЪЪлЪЪоллолЪЪоЭЪлллллллллллллллллллллллаллллллллллллллллллллл<<3<цлллллЭоЪлллЭлллЭоЪЭолллллллллллллллллллллллллллллллллллЭоЪлллЭлллЭоЪЭоллллллллллллллллллллллалЭоЭЭоЭолллллллллллл<333лллллЭЪлЪЪллолллЪлЪооллллллллллллллллллллллллллллллллллЭЪлЪЪллолллЪлЪооллллллллллллллллллллллалЭоЭллЪЪолллллллллллл333лллллЪлллЭоЭлллоЭоЪлоллллллллллллллллллллллллллллллллллЪлллЭоЭлллоЭоЪлоллллллллллллллллллллллаЭЪЪЭоЭоллллллллллллл<33лллллЪЪоЪЪлолллЭЪлЭЪлллллллллллллллллллллллллллллллллллЪЪоЪЪлолллЭЪлЭЪлллллллллллллллллллллллаЭоЭЭоЭоллллллллллллл333цллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллалЭоЭЭолЪоллллллллллл<<3лцллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллалллллллллллллллллллллл3ллллллffffffffffffФННлллллллллллллллллллллллллллллллллллffffffffffffФННлллллллллллллллллллллллаллллллллллллллллллллллллллллллffffffffffffФННлллллллллллллллллллллллллллллллллллffffffffffffФННлллллллллллллллллллллллаллллллллллллллллллллллллллллллffffffffffffФННлллллллллллллллллллллллллллллллллллffffffffffffФННлллллллллллллллллллллллллллллллллллллллллллллллллллллллffffffffffffФННлллллллллллллллллллллллллллллллллллffffffffffffФННллллллллллллллллллллллллллллллллллллллллллллллллfллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪолллллллЪллллллллллfллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭоЭлЪолЪЪЭЪЪллллллллfffлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭоЭЭоЪЭЪллЪлллллллллfffлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллЭЪоЭЪллЭЪлЪллллллллллfлллллллллDDDDDDлллллллллллллллллллллллллллллллллллллллллаллллллллллллллллллллллллллллллллллллллЭоЭлЪоЭЪолЭЪлллллллллfлллллллллDDDDDDлллллллллллллллллллллллллллллллллллллллллалллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллDDDDDDлллллллллллллллллллллллллллллллллллллллллалллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллD╢╩D╢╩ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллD╢╩D╢╩ллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллцлллллллллD╢╩D╢╩лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл<<3<цлллллллDDDDDDллллллллллллллллллллллллллллллллллллллллллаллллллллллллллллллллллллллллллллЪЪлллллллллЭоллллл<333ллллллллDDDDDDллллллллллллллллллллллллллллллллллллллллллалллллллллллллллллллллллллллллллЭЪлЭоолЪЪлЪЪЭЪоллллл333ллллллллDDDDDDллллллллллллллллллллллллллллллллллллллллллаллллллллллллллллллллллллллллллллЪоЭЪЪЭлЪЭЪлЭоЭллллл<33лллллллллLDDдллллллллллллллллллллллллллллллллллллллллллллл""ллллллллллллллллллллллллллллллллллЭЪЭЭЭЭлЪлЭЪЭоЭллллл333цллллллллLDDдллллллллллллллллллллллллллллллллллллллллллллл""лллллллллллллллллллллллллллллллллЭЪоЭЭЭлЪЪЭЪоЭоЭлллл<<3лцллллллллLDDдллллллллллллллллллллллллллллллллллллллллллллл""лллллллллллллллллллллллллллллллллллллллллллллллллллллл3ллллллллллLDDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллLDDдллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллLDDдлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллDдллLDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллDдллLDллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллDдллLDлллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл$-- title: RPG Battle -- author: PearBoy -- desc: A WIP Turn-based RPG battle system -- version: 0.1 -- script: lua creatures={ ["slime"]={sprite=257}, ["tree"]={sprite=258}, ["bat"]={sprite=259} } moves={ ["hit"]={ name="Hit", power=10, category="damage", uses=20 }, ["rest"]={ name="Rest", power=5, category="heal", uses=15 }, ["poke"]={ name="Poke", power=2, category="damage" }, ["smash"]={ name="Smash", power=100, category="damage", uses=5 } } battleLog={} function performMove(user,target,move) -- string to be added to battleLog m="" if move.category=="damage" then dealDamage(user, target, move.power) m = user.name.." used "..move.name.." on "..target.name.."!" elseif move.category=="heal" then healDamage(user, target, move.power) m = user.name.." used "..move.name.."!" end table.insert(battleLog, m) end -- TODO: -- break this function up -- into calculateDamage() -- and dealDamage() -- u: user, t: target, p: power function dealDamage(u,t,p) damage=p*(u.atk/t.def) damage=math.max(damage,1) damage=math.floor(damage) t.currentHp=math.max(t.currentHp-damage, 0) end -- u: user, t: target, p: power function healDamage(u,t,p) t.currentHp=math.min(t.currentHp+p, t.hp) end battlePhase="moveChoice" -- Fighter class Fighter={ name="", lv=0, hp=30, currentHp=25, hpToDisplay=25, hpBarLength=30, atk=10, def=10, moveList={ "hit", "rest", "smash" }, selectedMove=1, x=70, y=50 } -- returns a Fighter object function Fighter:create() local table_={} for k,v in pairs(Fighter) do table_[k]=v end return table_ end --draws a fighter object to the screen function Fighter:draw(f) if f.type~=nil then spr(creatures[f.type].sprite,f.x,f.y,0,3,0) else spr(256,f.x,f.y,0,3) end rect(f.x,f.y-5,f.hpBarLength,4,14) rect(f.x,f.y-5,f.hpBarLength*(f.hpToDisplay/f.hp),4,6) print(math.floor(f.hpToDisplay),f.x,f.y-12) print("/",f.x+12,f.y-12) print(f.hp,f.x+20,f.y-12) end -- end of Fighter class -- PlayerFighter class do local superClass=Fighter PlayerFighter=superClass:create() PlayerFighter.ready=false -- returns a PlayerFighter object function PlayerFighter:create() table_={} for k,v in pairs(PlayerFighter) do table_[k]=v end return table_ end end -- end of PlayerFighter class function drawMoveMenu() local x = 15 for i=1, #player.moveList, 1 do local move=moves[player.moveList[i]] print(move.name,x,40+(i-1)*10) if move.category == "damage" then spr(273, x + 38, 40+(i-1)*10 - 2, 0) elseif move.category == "heal" then spr(274, x + 38, 40+(i-1)*10 - 2, 0) end end spr(272,x - 8,38+(player.selectedMove-1)*10,0,2) end function displayLogMessage(message) if message~=nil then print(message, 40, 80) end end player=PlayerFighter:create() player.name="player 1" enemy=Fighter:create() enemy.name="enemy" enemy.type="bat" enemy.atk=8 enemy.def=6 enemy.moveList={ "poke" } enemy.x=player.x+100 enemy.y=player.y function depletionController(fighter, hpToDeplete) return { fighter = fighter, hpToDeplete = hpToDeplete } end function state(children, ownMethod) return { children = children, ownMethod = ownMethod } end -- initialize moveChoice state local moveChoice = function() local function moveChoiceMethod() if player.ready==false then drawMoveMenu() if btnp(0) then player.selectedMove=math.max(1,player.selectedMove-1) end if btnp(1) then player.selectedMove=math.min(#player.moveList,player.selectedMove+1) end end if btnp(4) then player.ready=true end if player.ready==true then battlePhase="moveUsing" end end local moveChoice = state({}, moveChoiceMethod) return moveChoice end -- initialize moveUsing state local moveUsing = function() local function moveUsingMethod() player.ready=false enemy.selectedMove=1 do local user=player local target=enemy local move=moves[user.moveList[user.selectedMove]] if move.category == "heal" then target = user end local hpBefore = target.currentHp performMove(user, target, move) trace(player.currentHp) local hpAfter = target.currentHp if move.category == "damage" then hpToDeplete = hpBefore - hpAfter battlePhase = "depletion" elseif move.category == "heal" then hpToDeplete = math.abs(hpBefore - hpAfter) battlePhase = "depletionHeal" end end end local moveUsing = state({}, moveUsingMethod) return moveUsing end do local children = { moveChoice = moveChoice(), moveUsing = moveUsing() } masterState = state(children, -1) end function TIC() cls(12) Fighter:draw(player) Fighter:draw(enemy) displayLogMessage(battleLog[#battleLog]) if battlePhase=="moveChoice" then masterState.children.moveChoice.ownMethod() elseif battlePhase=="moveUsing" then masterState.children.moveUsing.ownMethod() elseif battlePhase == "depletion" then local dmgPerFrame = 0.5 enemy.hpToDisplay = enemy.hpToDisplay - dmgPerFrame hpToDeplete = hpToDeplete - dmgPerFrame if hpToDeplete <= 0 then battlePhase = "enemyStuff" end elseif battlePhase == "depletionHeal" then local dmgPerFrame = 0.5 player.hpToDisplay = player.hpToDisplay + dmgPerFrame hpToDeplete = hpToDeplete - dmgPerFrame if hpToDeplete <= 0 then battlePhase = "enemyStuff" end elseif battlePhase == "enemyStuff" then if enemy.currentHp<=0 then table.insert(battleLog, "Enemy "..enemy.type.." has been knocked out!") player.hp=player.hp+5 player.atk=player.atk+2 player.def=player.def+2 enemy.currentHp=enemy.hp enemy.hpToDisplay=enemy.currentHp else do local user=enemy local target=player local move=moves[user.moveList[user.selectedMove]] performMove(user,target,move) target.hpToDisplay = target.currentHp end end battlePhase = "moveChoice" end end