/obj/item/flag/nation
density = 1
anchored = 1
var/turf/startloc = null
var/captured = 0
var/list/vassals = list()
var/datum/nations/liege = null
var/datum/nations/nation = null
/obj/item/flag/nation/New()
..()
flag_list += src
/obj/item/flag/nation/fire_act()
return
/obj/item/flag/nation/Ignite()
return
/obj/item/flag/nation/light()
return
/obj/item/flag/nation/attackby(var/obj/item/weapon/W, var/mob/user, params)
return
/obj/item/flag/nation/ex_act()
return
/obj/item/flag/nation/blob_act()
return
/obj/item/flag/nation/attack_hand(mob/user as mob)
if(user.mind)
if(user.mind.nation)
var/obj/item/flag/nation/F = locate(user.mind.nation.flagpath)
if(istype(user.mind.nation,nation)) //Same team as flag
if(liege && liege == F.liege)
user << "You can't steal your liege's flags!"
return
else if(loc != startloc)
loc = startloc
user.visible_message("[user] sends [src] back to base!", "You return [src] to your base!")
return
else
user << "You can't move your flag from it's home location!"
return
else
if(captured && Adjacent(F.startloc))
user << "This flag has already been captured by your team!"
return
else if(..())
captured = 0
anchored = 0
var/obj/item/flag/nation/N = null
if(liege)
N = locate(liege.flagpath)
for(var/mob/living/carbon/human/H in player_list)
if(H.mind && H.mind.nation && liege && nation)
if(H.mind.nation.name == liege.name) //we have to check based on the name var since they will be different instances of the nation datum
H.mind.current << "You are no longer the liege of [nation]!"
if(H.mind.nation.name == nation.name)
H.mind.current << "You are no longer vassals of [liege]!"
if(N)
N.vassals -= nation
liege = null
else
user << "You are not part of a nation and therefore cannot pick up any flags!"
return
return
/obj/item/flag/nation/dropped(mob/user as mob)
..()
spawn(20)
anchored = 1
var/obj/item/flag/nation/F = locate(user.mind.nation.flagpath)
if(F.loc != F.startloc) return
for(var/obj/item/flag/nation/S in orange(1,F.startloc))
if(S == src)
captured = 1
liege = F.nation
F.vassals += nation
//Announce capture/vassalage here.
for(var/mob/living/carbon/human/H in player_list)
if(H.mind && H.mind.nation && F.nation && nation)
if(H.mind.nation.name == F.nation.name)
H.mind.current << "You have just vassalized [nation]! They must now obey any members of your nation!"
continue
if(H.mind.nation.name == nation.name)
H.mind.current << "You are now vassals of [liege]! You must now obey the orders of any of their members!"
continue
//Check for Victory
for(var/obj/item/flag/nation/N in flag_list)
if(F.nation && N.nation)
if(F.nation.name == N.nation.name)
continue
if(N.liege && F.nation)
if(N.captured && N.liege.name == F.nation.name)
continue
else
return
ticker.mode.declare_completion(F.nation)
//Nations/Department flags --Nations Gamemode Specific
/obj/item/flag/nation/cargo
name = "Cargonia flag"
desc = "The flag of the independent, sovereign nation of Cargonia."
icon_state = "cargoflag"
nation = new /datum/nations/cargonia
/obj/item/flag/nation/med
name = "Medistan flag"
desc = "The flag of the independent, sovereign nation of Medistan."
icon_state = "medflag"
nation = new /datum/nations/medistan
/obj/item/flag/nation/sec
name = "Brigston flag"
desc = "The flag of the independent, sovereign nation of Brigston."
icon_state = "secflag"
nation = new /datum/nations/brigston
/obj/item/flag/nation/rnd
name = "Scientopia flag"
desc = "The flag of the independent, sovereign nation of Scientopia."
icon_state = "rndflag"
nation = new /datum/nations/scientopia
/obj/item/flag/nation/atmos
name = "Atmosia flag"
desc = "The flag of the independent, sovereign nation of Atmosia."
icon_state = "atmosflag"
nation = new /datum/nations/atmosia
/obj/item/flag/nation/command
name = "People's Republic of Commandzakstan flag"
desc = "The flag of the independent, sovereign nation of the People's Republic of Commandzakstan."
icon_state = "ntflag"
nation = new /datum/nations/command