mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-10 14:44:58 +00:00
Rearranged some script files
This commit is contained in:
104
Data/Scripts/011_Data/002_PBMove.rb
Normal file
104
Data/Scripts/011_Data/002_PBMove.rb
Normal file
@@ -0,0 +1,104 @@
|
||||
MOVE_ID = 0
|
||||
MOVE_INTERNAL_NAME = 1
|
||||
MOVE_NAME = 2
|
||||
MOVE_FUNCTION_CODE = 3
|
||||
MOVE_BASE_DAMAGE = 4
|
||||
MOVE_TYPE = 5
|
||||
MOVE_CATEGORY = 6
|
||||
MOVE_ACCURACY = 7
|
||||
MOVE_TOTAL_PP = 8
|
||||
MOVE_EFFECT_CHANCE = 9
|
||||
MOVE_TARGET = 10
|
||||
MOVE_PRIORITY = 11
|
||||
MOVE_FLAGS = 12
|
||||
MOVE_DESCRIPTION = 13
|
||||
|
||||
|
||||
|
||||
class PokemonTemp
|
||||
attr_accessor :movesData
|
||||
end
|
||||
|
||||
|
||||
|
||||
def pbLoadMovesData
|
||||
$PokemonTemp = PokemonTemp.new if !$PokemonTemp
|
||||
if !$PokemonTemp.movesData
|
||||
if pbRgssExists?("Data/moves.dat")
|
||||
$PokemonTemp.movesData = load_data("Data/moves.dat")
|
||||
else
|
||||
$PokemonTemp.movesData = []
|
||||
end
|
||||
end
|
||||
return $PokemonTemp.movesData
|
||||
end
|
||||
|
||||
def pbGetMoveData(moveID,moveDataType=-1)
|
||||
meta = pbLoadMovesData
|
||||
if moveDataType<0
|
||||
return meta[moveID] || []
|
||||
end
|
||||
return meta[moveID][moveDataType] if meta[moveID]
|
||||
return nil
|
||||
end
|
||||
|
||||
alias __moveData__pbClearData pbClearData
|
||||
def pbClearData
|
||||
$PokemonTemp.movesData = nil if $PokemonTemp
|
||||
__moveData__pbClearData
|
||||
end
|
||||
|
||||
|
||||
|
||||
class PBMoveData
|
||||
attr_reader :function,:basedamage,:type,:accuracy,:category
|
||||
attr_reader :totalpp,:addlEffect,:target,:priority,:flags
|
||||
|
||||
def initialize(moveid)
|
||||
moveData = pbGetMoveData(moveID)
|
||||
@function = moveData[MOVE_FUNCTION_CODE]
|
||||
@basedamage = moveData[MOVE_BASE_DAMAGE]
|
||||
@type = moveData[MOVE_TYPE]
|
||||
@category = moveData[MOVE_CATEGORY]
|
||||
@accuracy = moveData[MOVE_ACCURACY]
|
||||
@totalpp = moveData[MOVE_TOTAL_PP]
|
||||
@addlEffect = moveData[MOVE_EFFECT_CHANCE]
|
||||
@target = moveData[MOVE_TARGET]
|
||||
@priority = moveData[MOVE_PRIORITY]
|
||||
@flags = moveData[MOVE_FLAGS]
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
class PBMove
|
||||
attr_reader(:id) # This move's ID
|
||||
attr_accessor(:pp) # The amount of PP remaining for this move
|
||||
attr_accessor(:ppup) # The number of PP Ups used for this move
|
||||
|
||||
# Initializes this object to the specified move ID.
|
||||
def initialize(moveID)
|
||||
@id = moveID
|
||||
@pp = pbGetMoveData(moveID,MOVE_TOTAL_PP) || 0
|
||||
@ppup = 0
|
||||
end
|
||||
|
||||
# Changes this move's ID, and caps the PP amount if it is now greater than the
|
||||
# new move's total PP.
|
||||
def id=(value)
|
||||
oldID = @id
|
||||
@id = value
|
||||
@pp = [@pp,self.totalpp].min if oldID>0
|
||||
end
|
||||
|
||||
# Gets this move's type.
|
||||
def type
|
||||
return pbGetMoveData(@id,MOVE_TYPE) || 0
|
||||
end
|
||||
|
||||
# Gets the maximum PP for this move.
|
||||
def totalpp
|
||||
maxPP = pbGetMoveData(@id,MOVE_TOTAL_PP) || 0
|
||||
return maxPP+maxPP*@ppup/5
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user