Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -----------------------------------
- -- Area: West Sarutabaruta (S)
- -- NM: Ramponneau
- -----------------------------------
- require("scripts/globals/status");
- require("scripts/globals/magic");
- -----------------------------------
- -- onMobInitialize Action
- -----------------------------------
- function onMobInitialize(mob)
- mob:setMobMod(MOBMOD_ADD_EFFECT, mob:getShortID());
- mob:setMobMod(MOBMOD_AUTO_SPIKES, mob:getShortID());
- mob:addStatusEffect(EFFECT_SHOCK_SPIKES, 5, 0, 0);
- mob:getStatusEffect(EFFECT_SHOCK_SPIKES):setFlag(32);
- end;
- -----------------------------------
- -- onMobFight Action
- -----------------------------------
- function onMobFight(mob,target)
- mob:SetMobAbilityEnabled(false); -- not currently working
- mob:setTP(0); -- temp until above is fixed
- end;
- -----------------------------------
- -- onAdditionalEffect Action
- -----------------------------------
- function onAdditionalEffect(mob,target,damage)
- local power = math.random(4,15);
- local params = {};
- params.bonusmab = 0;
- params.includemab = false;
- power = addBonusesAbility(mob, ELE_ICE, target, power, params);
- power = power * applyResistanceAddEffect(mob, target, ELE_ICE, 0);
- power = adjustForTarget(target, power, ELE_ICE);
- power = finalMagicNonSpellAdjustments(mob, target, ELE_ICE, power);
- local message = MSGBASIC_ADD_EFFECT_DMG;
- if (power < 0) then
- message = MSGBASIC_ADD_EFFECT_HEAL;
- end
- return SUBEFFECT_ICE_DAMAGE, message, power;
- end;
- -----------------------------------
- -- onSpikesDamage
- -----------------------------------
- function onSpikesDamage(mob,target,damage)
- local INT_diff = mob:getStat(MOD_INT) - target:getStat(MOD_INT);
- if (INT_diff > 20) then
- INT_diff = 20 + (INT_diff -20) /2;
- end
- target:PrintToPlayer(string.format("base: %u", damage));
- target:PrintToPlayer(string.format("INT_diff: %u", INT_diff));
- local dmg = damage + INT_dif /2;
- local params = {};
- params.bonusmab = 0;
- params.includemab = false;
- dmg = addBonusesAbility(mob, ELE_THUNDER, target, dmg, params);
- target:PrintToPlayer(string.format("dmg after addBonusesAbility: %u", dmg));
- -- dmg = dmg * applyResistanceAddEffect(mob, target, ELE_THUNDER, 0);
- -- target:PrintToPlayer(string.format("dmg after resist mod: %u", dmg));
- dmg = adjustForTarget(target, dmg, ELE_THUNDER);
- target:PrintToPlayer(string.format("dmg after adjustForTarget: %u", dmg));
- dmg = finalMagicNonSpellAdjustments(mob, target, ELE_THUNDER, dmg);
- target:PrintToPlayer(string.format("final dmg: %u", dmg));
- if (dmg < 0) then
- dmg = 0;
- end
- return SUBEFFECT_SHOCK_SPIKES, 44, dmg ;
- end;
- -----------------------------------
- -- onMobDeath
- -----------------------------------
- function onMobDeath(mob,killer)
- -- Set Ramponneau's Window Open Time
- local wait = 5400 -- 90 minutes
- SetServerVariable("[POP]Ramponneau", os.time(t) + wait );
- DeterMob(mob:getID(), true);
- -- Set PH back to normal, then set to respawn spawn
- local PH = GetServerVariable("[PH]Ramponneau");
- SetServerVariable("[PH]Ramponneau", 0);
- DeterMob(PH, false);
- GetMobByID(PH):setRespawnTime(GetMobRespawnTime(PH));
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement