IceDragon200

(RGSS3)MkFeature

Mar 16th, 2012
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 11.28 KB | None | 0 0
  1. #==============================================================================#
  2. # ■ MkFeature
  3. #==============================================================================#
  4. # // • Created By      : IceDragon
  5. # // • Modified By     : IceDragon
  6. # // • Data Created    : 02/23/2012
  7. # // • Data Modified   : 03/14/2012
  8. # // • RGSS-Version(s) : 3
  9. # // • Version         : 1.0
  10. #==============================================================================#
  11. # This is just a library, for features (RMVXAce)
  12. # Basically its a shortcut for making features while scripting
  13. # Lets say you need, a Attack Rate Feature and a Agility Rate Feature:
  14. #   Normally you'd need to know the Feature Code, Data Id, etc..etc..
  15. #   I've taken the problem into my own hands, and wrote this little thing
  16. #   So instead of RPG::BaseItem::Feature.new(etc..etc..)
  17. #   You could just:
  18. #     MkFeature.atk_r(rate)
  19. #     MkFeature.def_r(rate)
  20. #==============================================================================#
  21. # ● Change Log
  22. #     ♣ 02/23/2012
  23. #         Added stuff, I dont remember the exact order...
  24. #     ♣ 03/14/2012
  25. #         Cleaned up, added header, and tail
  26. #==============================================================================#
  27. # ● Functions/Methods
  28. #   // Few Notes
  29. #      *_r Means Rate (so if you want 100% thats 1.0, 50%, 0.5, and so on)
  30. #==============================================================================#
  31. #   // Base
  32. #     feature(feature_id, data_id, value)
  33. #     param_r(param_id, rate)
  34. #     sparam_r(sparam_id, rate)
  35. #     xparam_r(xparam_id, rate)
  36. #     special(data_id, n)
  37. #     party_ability(data_id)
  38. #   // Actor
  39. #     element_r(element_id, rate)
  40. #     debuff_r(param_id, rate)
  41. #     state_r(state_id, rate)
  42. #     state_resist(state_id)
  43. #   // Parameter
  44. #     mhp_r(rate)
  45. #     mmp_r(rate)
  46. #     atk_r(rate)
  47. #     def_r(rate)
  48. #     mat_r(rate)
  49. #     mdf_r(rate)
  50. #     agi_r(rate)
  51. #     luk_r(rate)
  52. #   // Extended Paramater
  53. #     hit_r(rate)
  54. #     eva_r(rate)
  55. #     cri_r(rate)
  56. #     mag_eva_r(rate)
  57. #     mag_reflect_r(rate)
  58. #     cat_r(rate) - Counter Attack Rate
  59. #     hp_regen_r(rate)
  60. #     mp_regen_r(rate)
  61. #     tp_regen_r(rate)
  62. #   // Specical Parameter
  63. #     tgr(rate)   - Target Rate
  64. #     grd_r(rate) - Guard Rate
  65. #     rec_r(rate) - Recovery Rate
  66. #     pha_r(rate) - Pharmacology Rate
  67. #     mcr(rate)   - MP Cost Rate
  68. #     tcr(rate)   - TP Charge Rate
  69. #     pdr(rate)   - Phyiscal Damage Rate
  70. #     mdr(rate)   - Magic Damage Rate
  71. #     fdr(rate)   - Floor Damage Rate
  72. #     exr(rate)   - EXP Gain Rate
  73. #   // Attack
  74. #     atk_element(element_id)
  75. #     atk_state(state_id, probability_rate)
  76. #     atk_speed(speed)
  77. #     atk_times(n)
  78. #   // Skill
  79. #     stype_add(stype_id)
  80. #     stype_seal(stype_id)
  81. #     skill_add(skill_id)
  82. #     skill_seal(skill_id)
  83. #   // Equipment
  84. #     equip_wtype(wtype_id)
  85. #     equip_atype(atype_id)
  86. #     equip_fix(etype_id)
  87. #     equip_seal(etype_id)
  88. #     slot_type(slot_type_id)
  89. #     action_plus(rate)
  90. #   // Special
  91. #     auto_battle()
  92. #     guard()
  93. #     substitute()
  94. #     preserve_tp()
  95. #     collapse_type(type)
  96. #   // Party
  97. #     encounter_halve()
  98. #     encounter_none()
  99. #     cancel_surprise()
  100. #     raise_preemitive()
  101. #     gold_double()
  102. #     drop_item_double()
  103. #
  104. #==============================================================================#    
  105. module Mixin ; end
  106. module Mixin::FeatureConstants
  107.   FEATURE_ELEMENT_RATE  = 11            
  108.   FEATURE_DEBUFF_RATE   = 12            
  109.   FEATURE_STATE_RATE    = 13            
  110.   FEATURE_STATE_RESIST  = 14            
  111.   FEATURE_PARAM         = 21            
  112.   FEATURE_XPARAM        = 22            
  113.   FEATURE_SPARAM        = 23            
  114.   FEATURE_ATK_ELEMENT   = 31            
  115.   FEATURE_ATK_STATE     = 32            
  116.   FEATURE_ATK_SPEED     = 33            
  117.   FEATURE_ATK_TIMES     = 34            
  118.   FEATURE_STYPE_ADD     = 41            
  119.   FEATURE_STYPE_SEAL    = 42            
  120.   FEATURE_SKILL_ADD     = 43            
  121.   FEATURE_SKILL_SEAL    = 44            
  122.   FEATURE_EQUIP_WTYPE   = 51            
  123.   FEATURE_EQUIP_ATYPE   = 52            
  124.   FEATURE_EQUIP_FIX     = 53            
  125.   FEATURE_EQUIP_SEAL    = 54            
  126.   FEATURE_SLOT_TYPE     = 55            
  127.   FEATURE_ACTION_PLUS   = 61            
  128.   FEATURE_SPECIAL_FLAG  = 62            
  129.   FEATURE_COLLAPSE_TYPE = 63            
  130.   FEATURE_PARTY_ABILITY = 64            
  131.   # // >_> Gotta move these later \/
  132.   FLAG_ID_AUTO_BATTLE   = 0              
  133.   FLAG_ID_GUARD         = 1              
  134.   FLAG_ID_SUBSTITUTE    = 2              
  135.   FLAG_ID_PRESERVE_TP   = 3              
  136. end  
  137. module Mixin::ParamConstants
  138.   PARAM_MHP = 0
  139.   PARAM_MMP = 1
  140.   PARAM_ATK = 2
  141.   PARAM_DEF = 3
  142.   PARAM_MAT = 4
  143.   PARAM_MDF = 5
  144.   PARAM_AGI = 6
  145.   PARAM_LUK = 7
  146. end  
  147. module Mixin::XParamConstants
  148.   XPARAM_HIT_RATE      = 0
  149.   XPARAM_EVA_RATE      = 1
  150.   XPARAM_CRI_RATE      = 2
  151.   XPARAM_CRI_EVA_RATE  = 3
  152.   XPARAM_MAG_EVA_RATE  = 4
  153.   XPARAM_MAG_REF_RATE  = 5
  154.   XPARAM_CAT_RATE      = 6
  155.   XPARAM_HP_REGEN_RATE = 7
  156.   XPARAM_MP_REGEN_RATE = 8
  157.   XPARAM_TP_REGEN_RATE = 9
  158. end  
  159. module Mixin::SParamConstants
  160.   SPARAM_TARGET_RATE       = 0
  161.   SPARAM_GUARD_RATE        = 1
  162.   SPARAM_RECOVERY_RATE     = 2
  163.   SPARAM_PHARMACOLOGY_RATE = 3
  164.   SPARAM_MP_COST_RATE      = 4
  165.   SPARAM_TP_CHARGE_RATE    = 5
  166.   SPARAM_PHYSICAL_DAM_RATE = 6
  167.   SPARAM_MAGICAL_DAM_RATE  = 7
  168.   SPARAM_FLOOR_DAM_RATE    = 8
  169.   SPARAM_EXP_GAIN_RATE     = 9
  170. end
  171. module Mixin::AbilityConstants
  172.   ABILITY_ENCOUNTER_HALF    = 0          
  173.   ABILITY_ENCOUNTER_NONE    = 1          
  174.   ABILITY_CANCEL_SURPRISE   = 2          
  175.   ABILITY_RAISE_PREEMPTIVE  = 3          
  176.   ABILITY_GOLD_DOUBLE       = 4          
  177.   ABILITY_DROP_ITEM_DOUBLE  = 5          
  178. end  
  179. module MkFeature
  180.   include Mixin::FeatureConstants
  181.   include Mixin::ParamConstants
  182.   include Mixin::XParamConstants
  183.   include Mixin::SParamConstants
  184.   include Mixin::AbilityConstants
  185.   module_function()
  186.   def feature(feature_id,data_id,value=0)
  187.     RPG::BaseItem::Feature.new(feature_id,data_id,value.to_f)
  188.   end  
  189.   # // And More @_@ - 02/24/2012
  190.   def element_r(id,n)
  191.     feature(FEATURE_ELEMENT_RATE,id,n)
  192.   end
  193.   # // 02/29/2012
  194.   def debuff_r(id,n)
  195.     feature(FEATURE_DEBUFF_RATE,id,n)
  196.   end  
  197.   def state_r(id,n)
  198.     feature(FEATURE_STATE_RATE,id,n)
  199.   end  
  200.   def state_resist(id)
  201.     feature(FEATURE_STATE_RESIST,id)
  202.   end  
  203.   # // 02/23/2012
  204.   def param_r(i,n)
  205.     feature(FEATURE_PARAM,i,n)
  206.   end  
  207.   def mhp_r(n)
  208.     param_r(PARAM_MHP,n)
  209.   end  
  210.   def mmp_r(n)
  211.     param_r(PARAM_MMP,n)
  212.   end  
  213.   def atk_r(n)
  214.     param_r(PARAM_ATK,n)
  215.   end  
  216.   def def_r(n)
  217.     param_r(PARAM_DEF,n)
  218.   end  
  219.   def mat_r(n)
  220.     param_r(PARAM_MAT,n)
  221.   end  
  222.   def mdf_r(n)
  223.     param_r(PARAM_MDF,n)
  224.   end  
  225.   def agi_r(n)
  226.     param_r(PARAM_AGI,n)
  227.   end  
  228.   def luk_r(n)
  229.     param_r(PARAM_LUK,n)
  230.   end
  231.   # // XPARAM
  232.   def xparam_r(i,n)
  233.     feature(FEATURE_XPARAM, i, n)
  234.   end
  235.   def hit_r(n)
  236.     xparam_r(XPARAM_HIT_RATE, n)
  237.   end  
  238.   def eva_r(n)
  239.     xparam_r(XPARAM_EVA_RATE, n)
  240.   end  
  241.   def evasion_r(*args,&block);eva_r(*args,&block);end
  242.   def critical_r(n)
  243.     xparam_r(XPARAM_CRI_RATE, n)
  244.   end
  245.   def cri_r(*args,&block);critical_r(*args,&block);end
  246.   def cri_eva_r(n)
  247.     xparam_r(XPARAM_CRI_EVA_RATE, n)
  248.   end
  249.   def mag_eva_r(n)
  250.     xparam_r(XPARAM_MAG_EVA_RATE, n)
  251.   end
  252.   def mag_reflect_r(n)
  253.     xparam_r(XPARAM_MAG_REF_RATE, n)
  254.   end
  255.   def counter_attack_r(n)
  256.     xparam_r(XPARAM_CAT_RATE, n)
  257.   end
  258.   def cat_r(*args,&block);counter_attack_r(*args,&block);end
  259.   def hp_regen_r(n)
  260.     xparam_r(XPARAM_HP_REGEN_RATE, n)
  261.   end  
  262.   def mp_regen_r(n)
  263.     xparam_r(XPARAM_MP_REGEN_RATE, n)
  264.   end  
  265.   def tp_regen_r(n)
  266.     xparam_r(XPARAM_TP_REGEN_RATE, n)
  267.   end  
  268.   # // Special Abilities
  269.   def sparam_r(i,n)
  270.     feature(FEATURE_SPARAM, i, n)
  271.   end  
  272.   def target_r(n)
  273.     sparam_r(SPARAM_TARGET_RATE, n)
  274.   end
  275.   def tgr(n);target_r(n);end
  276.   def guard_r(n)
  277.     sparam_r(SPARAM_GUARD_RATE, n)
  278.   end
  279.   def grd_r(n);guard_r(n);end
  280.   def recovery_r(n)
  281.     sparam_r(SPARAM_RECOVERY_RATE, n)
  282.   end
  283.   def rec_r(n);recovery_r(n);end
  284.   def pharmacology_r(n)
  285.     sparam_r(SPARAM_PHARMACOLOGY_RATE, n)
  286.   end
  287.   def pha_r(n);pharmacology_r(n);end
  288.   def mp_cost_r(n)
  289.     sparam_r(SPARAM_MP_COST_RATE, n)
  290.   end
  291.   def mcr(n);mp_cost_r(n);end
  292.   def tp_charge_r(n)
  293.     sparam_r(SPARAM_TP_CHARGE_RATE, n)
  294.   end
  295.   def tcr(n);tp_charge_r(n);end
  296.   def phy_dam_r(n)
  297.     sparam_r(SPARAM_PHYSICAL_DAM_RATE, n)
  298.   end
  299.   def pdr(n);phy_dam_r(n);end
  300.   def mat_dam_r(n)
  301.     sparam_r(SPARAM_MAGICAL_DAM_RATE, n)
  302.   end
  303.   def mdr(n);mat_dam_r(n);end
  304.   def floor_dam_r(n)
  305.     sparam_r(SPARAM_FLOOR_DAM_RATE, n)
  306.   end
  307.   def fdr(n);floor_dam_r(n);end
  308.   def exp_gain_r(n)
  309.     sparam_r(SPARAM_EXP_GAIN_RATE, n)
  310.   end
  311.   def exr(n);exp_gain_r(n);end
  312.   # // 02/29/2012
  313.   def atk_element(n)
  314.     feature(FEATURE_ATK_ELEMENT, n)
  315.   end
  316.   def atk_state(id, n)
  317.     feature(FEATURE_ATK_STATE, id, n)
  318.   end
  319.   def atk_speed(n)
  320.     feature(FEATURE_ATK_SPEED, 0, n)
  321.   end
  322.   def atk_times(n)
  323.     feature(FEATURE_ATK_TIMES, 0, n)    
  324.   end
  325.   # // Some More -3- - 02/25/2012
  326.   def stype_add(n)
  327.     feature(FEATURE_STYPE_ADD, n)
  328.   end
  329.   def skill_type_add(*args,&block);stype_add(*args,&block);end
  330.   def stype_seal(n)
  331.     feature(FEATURE_STYPE_SEAL, n)
  332.   end  
  333.   def skill_type_seal(*args,&block);stype_seal(*args,&block);end
  334.   def skill_add(n)
  335.     feature(FEATURE_SKILL_ADD, n)
  336.   end  
  337.   def skill_seal(n)
  338.     feature(FEATURE_SKILL_SEAL, n)
  339.   end
  340.   # // More x.x
  341.   def equip_wtype(n)
  342.     feature(FEATURE_EQUIP_WTYPE, n)
  343.   end  
  344.   def weapon_type(n);equip_wtype(n);end
  345.   def equip_atype(n)  
  346.     feature(FEATURE_EQUIP_ATYPE, n)
  347.   end  
  348.   def armor_type(n);equip_atype(n);end
  349.   # // EVEN MOAR 030 - 02/29/2012
  350.   def equip_fix(n)
  351.     feature(FEATURE_EQUIP_FIX, n)
  352.   end
  353.   def equip_seal(n)
  354.     feature(FEATURE_EQUIP_SEAL, n)
  355.   end  
  356.   def slot_type(n=0)
  357.     feature(FEATURE_SLOT_TYPE, n, 0)
  358.   end
  359.   def action_plus(n)
  360.     feature(FEATURE_ACTION_PLUS, 0, n)
  361.   end  
  362.   # // Special
  363.   def special(id,n=0)
  364.     feature(FEATURE_SPECIAL_FLAG, id, n)
  365.   end
  366.   def auto_battle()
  367.     special(FLAG_ID_AUTO_BATTLE, 0)
  368.   end  
  369.   def guard()
  370.     special(FLAG_ID_GUARD, 0)
  371.   end  
  372.   def substitute()
  373.     special(FLAG_ID_SUBSTITUTE, 0)
  374.   end  
  375.   def preserve_tp()
  376.     special(FLAG_ID_PRESERVE_TP, 0)
  377.   end  
  378.   # // Collapse
  379.   def collapse_type(n)
  380.     feature(FEATURE_COLLAPSE_TYPE, n)
  381.   end  
  382.   # // Party
  383.   def party_ability(n)
  384.     feature(FEATURE_PARTY_ABILITY, n)
  385.   end
  386.   def encounter_halve()
  387.     party_ability(ABILITY_ENCOUNTER_HALF)
  388.   end  
  389.   def encounter_none()
  390.     party_ability(ABILITY_ENCOUNTER_NONE)
  391.   end  
  392.   def cancelsurprise()
  393.     party_ability(ABILITY_CANCEL_SURPRISE)
  394.   end  
  395.   def raise_preemitive()
  396.     party_ability(ABILITY_RAISE_PREEMPTIVE)
  397.   end  
  398.   def gold_double()
  399.     party_ability(ABILITY_GOLD_DOUBLE)
  400.   end  
  401.   def drop_item_double()
  402.     party_ability(ABILITY_DROP_ITEM_DOUBLE)
  403.   end  
  404. end    
  405. #=■==========================================================================■=#
  406. #                           // ● End of File ● //                              #
  407. #=■==========================================================================■=#
Advertisement
Add Comment
Please, Sign In to add comment