Skip to content

Commit dc62959

Browse files
committed
Every monster can now drop a legendary item, chance influenced by level
1 parent e1c1b9e commit dc62959

File tree

2 files changed

+34
-15
lines changed

2 files changed

+34
-15
lines changed

Code/AI/enemies.dm

+32-15
Original file line numberDiff line numberDiff line change
@@ -695,16 +695,13 @@ mob
695695
var/obj/items/prize
696696

697697
var/list/possible_drops = istext(drops) ? drops_list[drops] : drops
698-
var/isDefault = 0
699698

700699
if(!possible_drops && name == initial(name))
701700

702701
if(name in drops_list)
703702
possible_drops = drops_list[name]
704703
else
705704
possible_drops = drops_list["default"]
706-
isDefault = 1
707-
708705

709706
if(islist(possible_drops))
710707
for(var/i in possible_drops)
@@ -758,11 +755,18 @@ mob
758755
step(item, randomDir)
759756
else
760757
prize = new prize (loc)
761-
prize.prizeDrop(killer.ckey, decay=isDefault)
758+
prize.prizeDrop(killer.ckey, decay=1)
762759
killer << infomsg("<i>[name] dropped [prize.name]</i>")
763760
if(killer.pet)
764761
killer.pet.fetch(prize)
765762

763+
if(prob((level / killer.level)**3 * 0.01 * rate))
764+
sparks = 1
765+
prize = pick(drops_list["legendary"])
766+
prize = new prize (loc)
767+
prize.prizeDrop(killer.ckey, decay=1)
768+
killer << colormsg("<i>[name] dropped [prize.name]</i>", "#FFA500")
769+
766770
if(sparks)
767771
emit(loc = loc,
768772
ptype = /obj/particle/star,
@@ -1238,7 +1242,7 @@ mob
12381242
HPmodifier = 20
12391243
DMGmodifier = 2
12401244
MoveDelay = 3
1241-
AttackDelay = 1
1245+
AttackDelay = 3
12421246
Range = 20
12431247
level = 2000
12441248

@@ -1256,13 +1260,14 @@ mob
12561260
GenerateIcon(src)
12571261

12581262
namefont.QuickName(src, "The [name]", "#eee", "#e00", top=1)
1263+
hpbar = new(src)
12591264

12601265
Attacked(obj/projectile/p)
12611266
if(p.owner && isplayer(p.owner) && p.owner.loc.loc == loc.loc)
1262-
if(MoveDelay == 3 && prob(50))
1267+
if(MoveDelay == 3 && prob(30))
12631268
MoveDelay = 1
12641269
ChangeState(state)
1265-
spawn(rand(40, 60))
1270+
spawn(30)
12661271
MoveDelay = 3
12671272
ChangeState(state)
12681273

@@ -1379,6 +1384,7 @@ mob
13791384
animate( pixel_y = pixel_y - 1, time = 2)
13801385

13811386
namefont.QuickName(src, "[name]", "#eee", "#e00", top=1, px=0, py=2)
1387+
hpbar = new(src)
13821388

13831389
Attack(mob/M)
13841390
..()
@@ -1514,7 +1520,7 @@ mob
15141520
animate(src, color = "#0e3492", time = 10, loop = -1)
15151521
animate(color = "#2a32fb", time = 10)
15161522
animate(color = "#cdf0e3", time = 10)
1517-
sleep(200)
1523+
sleep(600)
15181524

15191525
Attack(mob/M)
15201526
..()
@@ -1608,8 +1614,7 @@ mob
16081614
var/RandomEvent/Sword/e = locate() in worldData.events
16091615

16101616
if(e.swords < 30)
1611-
e.swords+=3
1612-
new /mob/Enemies/Summoned/Sword (loc)
1617+
e.swords+=2
16131618
new /mob/Enemies/Summoned/Sword (loc)
16141619
new /mob/Enemies/Summoned/Sword (loc)
16151620

@@ -1620,14 +1625,14 @@ mob
16201625
MoveDelay = 3
16211626
ChangeState(state)
16221627

1623-
sleep(400)
1628+
sleep(600)
16241629

16251630
Attack(mob/M)
16261631
..()
16271632

16281633
if(!fired && target && state == HOSTILE && icon_state == "sword")
16291634
fired = 1
1630-
spawn(10) fired = 0
1635+
spawn(30) fired = 0
16311636

16321637
var/list/dirs
16331638
if(diag == 0)
@@ -1677,6 +1682,12 @@ mob
16771682
canBleed = FALSE
16781683
var/tmp/fired = 0
16791684

1685+
MapInit()
1686+
set waitfor = 0
1687+
..()
1688+
namefont.QuickName(src, "[name]", "#eee", "#e00", top=1, py=16)
1689+
hpbar = new(src)
1690+
16801691
Attack(mob/M)
16811692
..()
16821693
if(!fired && target && state == HOSTILE)
@@ -1730,6 +1741,12 @@ mob
17301741
extraDmg = 400
17311742
element = WATER
17321743

1744+
MapInit()
1745+
set waitfor = 0
1746+
..()
1747+
namefont.QuickName(src, "[name]", "#eee", "#e00", top=1, py=16)
1748+
hpbar = new(src)
1749+
17331750
Death()
17341751
..()
17351752
SpawnPortal("teleportPointSnowman Dungeon")
@@ -2755,10 +2772,10 @@ obj/corpse
27552772
area/var/undead = 0
27562773

27572774
mob/Enemies/Summoned/Zombie
2758-
DMGmodifier = 1
2759-
HPmodifier = 2
2775+
DMGmodifier = 0.8
2776+
HPmodifier = 1
27602777
MoveDelay = 2
2761-
AttackDelay = 3
2778+
AttackDelay = 5
27622779

27632780
New(Loc, mob/Player/p, obj/corpse/c)
27642781
appearance = c.appearance

Code/Shops.dm

+2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ proc/announcemsg(T as text)
3737
return "<span style=\"color:#27BBF5; font-size:3;\"><b>[T]</b></span>"
3838
proc/infomsg(T as text)
3939
return "<span style=\"color:#27BBF5;\">[T]</span>"
40+
proc/colormsg(T as text, c)
41+
return "<span style=\"color:[c];\">[T]</span>"
4042

4143
mob/Tom_
4244
icon = 'NPCs.dmi'

0 commit comments

Comments
 (0)