Advertisement
TechSkylander1518

Substitube Evolution Methods Essentials v20 WIP

May 22nd, 2023 (edited)
1,634
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.74 KB | None | 1 0
  1. #Low Happiness - not stated what's considered "low", but I did 35 bc it's half of the standard base 70
  2. GameData::Evolution.register({
  3.   :id            => :LowHappiness,
  4.   :minimum_level => 1,   # Needs any level up
  5.   :level_up_proc => proc { |pkmn, parameter|
  6.     next pkmn.happiness <= 35
  7.   }
  8. })
  9.  
  10. #Status affliction already done in my Oddities script
  11.  
  12. #Indoor/outdoor
  13. GameData::Evolution.register({
  14.   :id            => :LevelOutdoor,
  15.   :parameter     => Integer,
  16.   :level_up_proc => proc { |pkmn, parameter|
  17.     next pkmn.level >= parameter && $game_map.metadata&.outdoor_map
  18.   }
  19. })
  20.  
  21. GameData::Evolution.register({
  22.   :id            => :LevelIndoor,
  23.   :parameter     => Integer,
  24.   :level_up_proc => proc { |pkmn, parameter|
  25.     next pkmn.level >= parameter && !($game_map.metadata&.outdoor_map)
  26.   }
  27. })
  28.  
  29. #Day of Week
  30. #0 is Sunday, 6 is Saturday
  31.  
  32. #Any level-up, parameter is day of week
  33. GameData::Evolution.register({
  34.   :id            => :LevelDayOfWeek,
  35.   :minimum_level => 1,   # Needs any level up
  36.   :parameter     => Integer,
  37.   :level_up_proc => proc { |pkmn, parameter|
  38.     next pbIsWeekday(-1,parameter)
  39.   }
  40. })
  41.  
  42. #Specific day of week, parameter is level
  43. GameData::Evolution.register({
  44.   :id            => :LevelMonday,
  45.   :parameter     => Integer,
  46.   :level_up_proc => proc { |pkmn, parameter|
  47.     next pkmn.level >= parameter && pbIsWeekday(-1,1)
  48.   }
  49. })
  50.  
  51. #Maximize level would just be done via standard level-up. Just remember to set it as the first evolution, so other evolutions don't override it.
  52.  
  53. GameData::Evolution.register({
  54.   :id            => :LevelEffort,
  55.   :minimum_level => 1,   # Needs any level up
  56.   :level_up_proc => proc { |pkmn, parameter|
  57.     total = 0
  58.     pkmn.ev.each_value { |v| total += v }
  59.     next total >= Pokemon::EV_LIMIT
  60.   }
  61. })
  62.  
  63. #Parameter is a specific stat
  64. GameData::Evolution.register({
  65.   :id            => :LevelEffortStat,
  66.   :minimum_level => 1,   # Needs any level up
  67.   :parameter     => :Stat,
  68.   :level_up_proc => proc { |pkmn, parameter|
  69.     next pkmn.ev[parameter] >= Pokemon::EV_STAT_LIMIT
  70.   }
  71. })
  72.  
  73. #Level at or above given level on map where Pokemon was obtained
  74. GameData::Evolution.register({
  75.   :id            => :Homecoming,
  76.   :parameter     => Integer,
  77.   :level_up_proc => proc { |pkmn, parameter|
  78.     next pkmn.level >= parameter && pkmn.obtain_map == $game_map.map_id
  79.   }
  80. })
  81.  
  82. #Landing OHKO moves in a battle
  83. #Defeat foe using resisted or ineffective move
  84. #Inflict status against foe repeatedly in battle
  85. #Experience non-volatile status during fight
  86. #Survive on one HP
  87. #Survive multiple SE hits
  88. #Defeat rival species
  89. #Using vitamins and Rare Candies can be done via standard item evo. X-Items would need to be created
  90. #Same is true of healing items
  91. #Same is true of beverages
  92. #Same is true of berries
  93.  
  94. #Any level-up, parameter is Poke Ball
  95. GameData::Evolution.register({
  96.   :id                   => :LevelBall,
  97.   :parameter            => :Item,
  98.   :minimum_level        => 1,   # Needs any level up
  99.   :level_up_proc        => proc { |pkmn, parameter|
  100.     next pkmn.poke_ball == parameter
  101.   }
  102. })
  103.  
  104. #Ball is hard-coded, parameter is level
  105. GameData::Evolution.register({
  106.   :id            => :LevelGreatBall,
  107.   :parameter     => Integer,
  108.   :level_up_proc => proc { |pkmn, parameter|
  109.     next pkmn.level >= parameter && pkmn.poke_ball == :GREATBALL
  110.   }
  111. })
  112.  
  113. #Return trade
  114. GameData::Evolution.register({
  115.   :id            => :TradeReturn,
  116.   :on_trade_proc => proc { |pkmn, parameter, other_pkmn|
  117.     next !(pkmn.foreign?)
  118.   }
  119. })
  120.  
  121. #Battery, volume - see Oddities
  122. #Bluetooth, airplane mode, brightness - not sure if possible through Essentials
  123. #Language would need to be settings or something
  124. #Real time aging - check timeReceived and time now, but how to format the requirement?
  125. #Parenting would require setting relationships during breeding
  126. #withdraw from PC would probably be like an event evo
  127. #Same for releasing Pokemon
  128. #Skipping evos for a later one is just a matter of how you design the PBS - put the higher-level evo first in the PBS so the others don't override it
  129.  
  130. #Specific nickname
  131. GameData::Evolution.register({
  132.   :id                   => :LevelName,
  133.   :parameter            => String,
  134.   :minimum_level        => 1,   # Needs any level up
  135.   :level_up_proc        => proc { |pkmn, parameter|
  136.     next pkmn.name == parameter
  137.   }
  138. })
  139. #Hall of Fame could be done via ribbon or via specific attribute
  140.  
  141. #Money above certain amount
  142. GameData::Evolution.register({
  143.   :id            => :LevelMoney,
  144.   :minimum_level => 1,   # Needs any level up
  145.   :parameter     => Integer,
  146.   :level_up_proc => proc { |pkmn, parameter|
  147.     next $player.money >= parameter
  148.   }
  149. })
  150.  
  151. #Retirement trip would need a new attribute that would be kept track of every time the player entered a location
  152.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement