This repository was archived by the owner on Apr 29, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 537
Limbus #6253
Open
cocosolos
wants to merge
33
commits into
DarkstarProject:master
Choose a base branch
from
cocosolos:temenos
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Limbus #6253
Changes from all commits
Commits
Show all changes
33 commits
Select commit
Hold shift + click to select a range
a05dbc3
Temenos
cocosolos a2bed75
Removed unnecessary mob despawning. Updated db to not spawn these mob…
cocosolos 79b866d
Removed mislabeled chest from final-chest check
cocosolos 37b07a9
Changed some function names and started cleanup of limbus.lua. Made s…
cocosolos 2a877fa
Update renamed functions in Apollyon. Add entrance option to findBatt…
cocosolos f21ed47
Cleaned up all Temenos mob files. Moved IDs to ID file. Got rid of un…
cocosolos 7770224
Randomize chest position in Temenos East floor 7. Fix typo.
cocosolos 431501a
Fixed some wrong IDs causing miscolored chests
cocosolos 8209633
Chests should despawn when Ultima is engaged
cocosolos 9338d27
Added a server variable to keep track of time remaining for Scanning …
cocosolos 4b65186
Change dontKick to int
cocosolos b039847
Removed the entrance option on a few functions since it's not being u…
cocosolos a314c65
Fix Scanning Device to show correct options. Renamed some variables t…
cocosolos e5fa54f
Start removal of limbus.isMobDead, replaced with npc:isDead for more …
cocosolos 31c45d6
Randomize portal/chest trigger mobs where appropriate. Adjust mob/che…
cocosolos 80be75a
Lots of Apollyon stuff. Apollyon and Temenos armoury crate rewrite. A…
cocosolos 793493e
Wiki is wrong, chips are consumed not dimmed. Soap timer is set when …
cocosolos 14f28bf
missing semicolon
cocosolos 84cd746
Proto-Omega adjustments. Some clean-up.
cocosolos b3a959b
Fix issue with Apollyon entrance from AlTaieu. Disable draw-in for no…
cocosolos c5a21a4
Add correct NPCs for Temenos doors. Move Limbus time extension to its…
cocosolos 61e18ab
Include and expand offset function
cocosolos 996185f
Prevent Limbus mobs from auto linking/superlinking. Fix chest auto sp…
cocosolos e0ff6f8
Make Limbus zonetype. Adjust Temenos West crate spawn mechanics.
cocosolos 0224b9e
Set damage immunities in Apollyon
cocosolos 92a90b5
Added missing Apollyon portals to npc_list
cocosolos c9b43ea
missed saving a rename
cocosolos 335a859
Mass renaming and armoury crate rework.
cocosolos 1d8042f
moved gate stuff to global function
cocosolos 915ee89
Temenos mob pathing refactor and cleanup
cocosolos 6e2b58d
More pathing changes. Apollyon pathing added.
cocosolos 33440f2
Citadel buster, nuclear waste and related abilities.
cocosolos 703dfab
Resist check Nuclear Waste, temp fix Citadel Buster
cocosolos File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| ----------------------------------- | ||
| -- | ||
| -- dsp.effect.ELEMENTALRES_DOWN | ||
| -- | ||
| ----------------------------------- | ||
| require("scripts/globals/status") | ||
| ----------------------------------- | ||
|
|
||
| function onEffectGain(target,effect) | ||
| target:addMod(dsp.mod.FIRERES, -effect:getPower()) | ||
| target:addMod(dsp.mod.ICERES, -effect:getPower()) | ||
| target:addMod(dsp.mod.WINDRES, -effect:getPower()) | ||
| target:addMod(dsp.mod.EARTHRES, -effect:getPower()) | ||
| target:addMod(dsp.mod.THUNDERRES, -effect:getPower()) | ||
| target:addMod(dsp.mod.WATERRES, -effect:getPower()) | ||
| target:addMod(dsp.mod.LIGHTRES, -effect:getPower()) | ||
| target:addMod(dsp.mod.DARKRES, -effect:getPower()) | ||
| end | ||
|
|
||
| function onEffectTick(target,effect) | ||
| end | ||
|
|
||
|
|
||
| function onEffectLose(target,effect) | ||
| target:delMod(dsp.mod.FIRERES, -effect:getPower()) | ||
| target:delMod(dsp.mod.ICERES, -effect:getPower()) | ||
| target:delMod(dsp.mod.WINDRES, -effect:getPower()) | ||
| target:delMod(dsp.mod.EARTHRES, -effect:getPower()) | ||
| target:delMod(dsp.mod.THUNDERRES, -effect:getPower()) | ||
| target:delMod(dsp.mod.WATERRES, -effect:getPower()) | ||
| target:delMod(dsp.mod.LIGHTRES, -effect:getPower()) | ||
| target:delMod(dsp.mod.DARKRES, -effect:getPower()) | ||
| end |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,89 @@ | ||
| --------------------------------------------- | ||
| -- Citadel Buster | ||
| -- Deals extreme Light damage to players in an area of effect. | ||
| -- Additional effect: Enmity reset | ||
| -- Damage can be approximated based on Calculating Weapon Skill Damage as a magical WS with a level of 85, fTP of 6 and MAB of 4.0. Or, more simply: | ||
| -- 2088/(1+MDB%) * (256-MDT)/256 (no day/weather bonus) | ||
| -- 2608/MDB * (256-MDT)/256 (weather bonus) | ||
| -- 2816/MDB * (256-MDT)/256 (day+weather bonus) | ||
| --------------------------------------------- | ||
| require("scripts/globals/monstertpmoves") | ||
| require("scripts/globals/settings") | ||
| require("scripts/globals/status") | ||
| require("scripts/globals/weather") | ||
| local ID = require("scripts/zones/Temenos/IDs") | ||
|
|
||
| --------------------------------------------- | ||
|
|
||
| function onMobSkillCheck(target,mob,skill) | ||
| local phase = mob:getLocalVar("battlePhase") | ||
| if (phase == 4) then | ||
| mob:setLocalVar("citadelBuster", 1) | ||
| mob:SetMobAbilityEnabled(false) | ||
| mob:SetMagicCastingEnabled(false) | ||
| mob:SetAutoAttackEnabled(false) | ||
| mob:setMobMod(dsp.mobMod.DRAW_IN, 1) | ||
| local battlefield = mob:getBattlefield() | ||
| local players = battlefield:getPlayers() | ||
| for _, member in pairs(players) do | ||
| member:messageSpecial(ID.text.CITADEL_BASE) | ||
| end | ||
| mob:timer(10000, function(mob) | ||
| for _, member in pairs(players) do | ||
| member:messageSpecial(ID.text.CITADEL_BASE+1) | ||
| end | ||
| mob:timer(10000, function(mob) | ||
| for _, member in pairs(players) do | ||
| member:messageSpecial(ID.text.CITADEL_BASE+2) | ||
| end | ||
| mob:timer(5000, function(mob) | ||
| for _, member in pairs(players) do | ||
| member:messageSpecial(ID.text.CITADEL_BASE+3) | ||
| end | ||
| mob:timer(1000, function(mob) | ||
| for _, member in pairs(players) do | ||
| member:messageSpecial(ID.text.CITADEL_BASE+4) | ||
| end | ||
| mob:timer(1000, function(mob) | ||
| for _, member in pairs(players) do | ||
| member:messageSpecial(ID.text.CITADEL_BASE+5) | ||
| end | ||
| mob:timer(1000, function(mob) | ||
| for _, member in pairs(players) do | ||
| member:messageSpecial(ID.text.CITADEL_BASE+6) | ||
| end | ||
| mob:timer(1000, function(mob) | ||
| for _, member in pairs(players) do | ||
| member:messageSpecial(ID.text.CITADEL_BASE+7) | ||
| end | ||
| mob:timer(1000, function(mob) | ||
| mob:useMobAbility(1540) | ||
| mob:timer(500, function(mob) | ||
| mob:setLocalVar("citadelBuster", 0) | ||
| mob:SetMagicCastingEnabled(true) | ||
| mob:SetAutoAttackEnabled(true) | ||
| mob:SetMobAbilityEnabled(true) | ||
| mob:setMobMod(dsp.mobMod.DRAW_IN, 0) | ||
| end) | ||
| end) | ||
| end) | ||
| end) | ||
| end) | ||
| end) | ||
| end) | ||
| end) | ||
| end) | ||
| end | ||
| return 1 | ||
| end | ||
|
|
||
| function onMobWeaponSkill(target, mob, skill) | ||
| local basedmg = 2088 | ||
| if mob:getWeather() == dsp.weather.AURORAS or mob:getWeather() == dsp.weather.STELLAR_GLARE then basedmg = basedmg + 520 end | ||
| if VanadielDayElement() == dsp.day.LIGHTSDAY then basedmg = basedmg + 208 end | ||
| local damage = basedmg/(1+(target:getMod(dsp.mod.MDEF)/100)) | ||
| local dmg = MobFinalAdjustments(damage,mob,skill,target,dsp.attackType.MAGICAL,dsp.damageType.LIGHT,MOBPARAM_IGNORE_SHADOWS) | ||
| target:takeDamage(dmg, mob, dsp.attackType.MAGICAL, dsp.damageType.LIGHT) | ||
| mob:resetEnmity(target) | ||
| return dmg | ||
| end | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| --------------------------------------------------- | ||
| -- Nuclear Waste | ||
| -- Description: Reduces elemental resistances by 50 to players in range. | ||
| --------------------------------------------------- | ||
| require("scripts/globals/settings") | ||
| require("scripts/globals/status") | ||
| require("scripts/globals/monstertpmoves") | ||
|
|
||
| --------------------------------------------------- | ||
|
|
||
| function onMobSkillCheck(target,mob,skill) | ||
| -- skillList 54 = Omega | ||
| -- skillList 727 = Proto-Omega | ||
| -- skillList 728 = Ultima | ||
| -- skillList 729 = Proto-Ultima | ||
| local skillList = mob:getMobMod(dsp.mobMod.SKILL_LIST) | ||
| local mobhp = mob:getHPP() | ||
| local phase = mob:getLocalVar("battlePhase") | ||
|
|
||
| if ((skillList == 729 and phase >= 1 and phase <= 2) or (skillList == 728 and mobhp < 70 and mobhp >= 40)) then | ||
| if mob:getLocalVar("nuclearWaste") == 0 then | ||
| return 0 | ||
| end | ||
| end | ||
|
|
||
| return 1 | ||
| end | ||
|
|
||
| function onMobWeaponSkill(target, mob, skill) | ||
| mob:setLocalVar("nuclearWaste", 1) | ||
| local typeEffect = dsp.effect.ELEMENTALRES_DOWN | ||
| local resist = applyPlayerResistance(mob,typeEffect,target,mob:getStat(dsp.mod.INT)-target:getStat(dsp.mod.INT),0,0); | ||
| if (resist >= 0.25) then | ||
| target:addStatusEffectEx(typeEffect, 0, 50, 0, 60) | ||
| skill:setMsg(dsp.msg.basic.NONE) | ||
| else | ||
| skill:setMsg(dsp.msg.basic.SKILL_MISS) | ||
| end | ||
| return typeEffect | ||
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| --------------------------------------------- | ||
| -- Pod Ejection | ||
| --------------------------------------------- | ||
|
|
||
| function onMobSkillCheck(target,mob,skill) | ||
| local pod = GetMobByID(mob:getID() + 1) | ||
| local currentForm = mob:getLocalVar("form") | ||
|
|
||
| if not pod:isSpawned() and currentForm == 2 then -- proto-omega final form | ||
| return 0 | ||
| end | ||
| return 1 | ||
| end | ||
|
|
||
| function onMobWeaponSkill(target, mob, skill) | ||
| local battlefield = mob:getBattlefield() | ||
| local pod = GetMobByID(mob:getID() + 1) | ||
| if battlefield and not pod:isSpawned() then | ||
| local players = battlefield:getPlayers() | ||
| local random = math.random(1, #players) | ||
| local X = mob:getXPos() | ||
| local Y = mob:getYPos() | ||
| local Z = mob:getZPos() | ||
| pod:spawn() | ||
| pod:setPos(X,Y,Z) | ||
| pod:updateEnmity(players[random]) | ||
| end | ||
| return 0 | ||
| end |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
exactly zero of this belongs in the skillcheck, and should happen before the mob is even trying to activate the skill instead. Then when your countdown is over, force call the skill via the function we have for that purpose.worry about it another day in a future pr I guess. I would still try and cut down on that left/right scrolling nested timer set though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure where/how to move this without needing to manually set when to use the skill. It should be used randomly like any other tp move, but pulling these messages out of the skillcheck means I would need to manually call that at a certain hp percent or rely on random, which ends up just basically proccing over and over.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could move it to the mobs script under onMobWeaponskill(mob, target, skill) I believe, then make it do the messages if skill = c. Buster
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem with that is onMobWeaponskill executes after the skill charging animation starts. The skill check is the only place with lua access between the ai picking which skill to use and the start of the charge animation.