diff --git a/code/game/gamemodes/gang/gang_datum.dm b/code/game/gamemodes/gang/gang_datum.dm
index 41f4a710e5a..ed9e0a693d1 100644
--- a/code/game/gamemodes/gang/gang_datum.dm
+++ b/code/game/gamemodes/gang/gang_datum.dm
@@ -133,6 +133,12 @@
var/added_names = ""
var/lost_names = ""
+ //Re-add territories that were reclaimed, so if they got tagged over, they can still earn income if they tag it back before the next status report
+ var/list/reclaimed_territories = territory_new & territory_lost
+ territory |= reclaimed_territories
+ territory_new -= reclaimed_territories
+ territory_lost -= reclaimed_territories
+
//Process lost territories
for(var/area in territory_lost)
if(lost_names != "")
@@ -179,10 +185,6 @@
points = points_new
message += "Your gang now has [points] influence.
"
-
- //Remove territories they already own from the buffer, so if they got tagged over, they can still earn income if they tag it back before the next status report
- territory_new -= territory
-
//Process new territories
for(var/area in territory_new)
if(added_names != "")
diff --git a/code/game/gamemodes/gang/recaller.dm b/code/game/gamemodes/gang/recaller.dm
index dafdb485cd5..c09b45d70cd 100644
--- a/code/game/gamemodes/gang/recaller.dm
+++ b/code/game/gamemodes/gang/recaller.dm
@@ -43,7 +43,7 @@
if(isnum(gang.dom_timer))
dat += "
Takeover In Progress:
[gang.dom_timer] seconds remain"
- var/isboss = (user.mind in ticker.mode.get_gang_bosses())
+ var/isboss = (user.mind == gang.bosses[1])
var/points = gang.points
dat += "Registration: [gang.name] Gang [isboss ? "Boss" : "Lieutenant"]
"
dat += "Organization Size: [gang.gangsters.len + gang.bosses.len] | Station Control: [round((gang.territory.len/start_state.num_territories)*100, 1)]%
"
@@ -57,7 +57,7 @@
dat += "Create Armored Gang Outfit
"
else
dat += "Create Gang Outfit (Restocking)
"
- if(user.mind in ticker.mode.get_gang_bosses())
+ if(isboss)
dat += "Recall Emergency Shuttle
"
dat += "
"
@@ -158,7 +158,7 @@
dat += "Recruitment Pen
"
var/gangtooltext = "Spare Gangtool"
- if((user.mind in ticker.mode.get_gang_bosses()) && gang.bosses.len < 3)
+ if(isboss && gang.bosses.len < 3)
gangtooltext = "Promote a Gangster"
dat += "(10 Influence) "
if(points >= 10)
@@ -258,7 +258,7 @@
pointcost = 10
if("gangtool")
if(gang.points >= 10)
- if(usr.mind in ticker.mode.get_gang_bosses())
+ if(usr.mind == gang.bosses[1])
item_type = /obj/item/device/gangtool/spare/lt
if(gang.bosses.len < 3)
usr << "Gangtools allow you to promote a gangster to be your Lieutenant, enabling them to recruit and purchase items like you. Simply have them register the gangtool. You may promote up to [3-gang.bosses.len] more Lieutenants"
@@ -301,7 +301,7 @@
else if(href_list["choice"])
switch(href_list["choice"])
if("recall")
- if(usr.mind in ticker.mode.get_gang_bosses())
+ if(usr.mind == gang.bosses[1])
recall(usr)
if("outfit")
if(outfits > 0)
@@ -326,7 +326,19 @@
members += gang.gangsters
members += gang.bosses
if(members.len)
- var/ping = "[gang.name] [(user.mind in ticker.mode.get_gang_bosses()) ? "Gang Boss" : "Lieutenant"]: [message]"
+ var/gang_rank = gang.bosses.Find(user.mind)
+ switch(gang_rank)
+ if(1)
+ gang_rank = "Gang Boss"
+ if(2)
+ gang_rank = "1st Lieutenant"
+ if(3)
+ gang_rank = "2nd Lieutenant"
+ if(4)
+ gang_rank = "3rd Lieutenant"
+ else
+ gang_rank = "[gang_rank - 1]th Lieutenant"
+ var/ping = "[gang.name] [gang_rank]: [message]"
for(var/datum/mind/ganger in members)
if(ganger.current && (ganger.current.z <= 2) && (ganger.current.stat == CONSCIOUS))
ganger.current << ping
diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm
index 2d89998c4d7..780f45e5ffd 100644
--- a/code/game/objects/effects/decals/crayon.dm
+++ b/code/game/objects/effects/decals/crayon.dm
@@ -43,7 +43,6 @@
color = G.color_hex
icon_state = G.name
G.territory_new |= list(territory.type = territory.name)
- G.territory_lost -= territory.type
..(location, color, icon_state, e_name, rotation)
@@ -51,6 +50,7 @@
var/area/territory = get_area(src)
if(gang)
+ gang.territory -= territory.type
gang.territory_new -= territory.type
gang.territory_lost |= list(territory.type = territory.name)
..()
\ No newline at end of file