Симкрафт о гаргулье:
Код:// ========================================================================== // Gargoyle // ========================================================================== struct gargoyle_pet_t : public pet_t { struct gargoyle_strike_t : public spell_t { gargoyle_strike_t( player_t* player ) : spell_t( "gargoyle_strike", player, RESOURCE_NONE, SCHOOL_NATURE ) { // FIX ME! // Resist (can be partial)? Scaling? background = true; repeating = true; may_crit = false; base_dd_min = 130; base_dd_max = 150; base_spell_power_multiplier = 0; base_attack_power_multiplier = 1; direct_power_mod = 0.40; base_execute_time = 2.0; } }; gargoyle_strike_t* gargoyle_strike; double haste_snapshot, power_snapshot; gargoyle_pet_t( sim_t* sim, player_t* owner ) : pet_t( sim, owner, "gargoyle", true ), gargoyle_strike( 0 ), haste_snapshot( 1.0 ), power_snapshot( 0.0 ) { } virtual void init_base() { // FIX ME! attribute_base[ ATTR_STRENGTH ] = 0; attribute_base[ ATTR_AGILITY ] = 0; attribute_base[ ATTR_STAMINA ] = 0; attribute_base[ ATTR_INTELLECT ] = 0; attribute_base[ ATTR_SPIRIT ] = 0; gargoyle_strike = new gargoyle_strike_t( this ); } virtual double composite_spell_haste() SC_CONST { return haste_snapshot; } virtual double composite_attack_power() SC_CONST { return power_snapshot; } virtual void summon( double duration=0 ) { pet_t::summon( duration ); // Haste etc. are taken at the time of summoning death_knight_t* o = owner -> cast_death_knight(); haste_snapshot = o -> composite_attack_haste(); power_snapshot = o -> composite_attack_power() * o -> composite_attack_power_multiplier(); gargoyle_strike -> schedule_execute(); // Kick-off repeating attack } };




Ответить с цитированием
