Update to HOG and stuffs

This commit is contained in:
Shadowlight213
2016-03-08 15:52:31 -08:00
parent 40ee6f66ba
commit b3e008f1ce
6 changed files with 170 additions and 45 deletions
@@ -316,6 +316,18 @@ var/global/list/global_handofgod_structuretypes = list()
return 1
/mob/camera/god/proc/is_handofgod_myfollowers(A)
if(!ishuman(A))
return 0
var/mob/living/carbon/human/H = A
if(!H.mind)
return 0
if(side == "red")
if(H.mind in ticker.mode.red_deity_prophets|ticker.mode.red_deity_followers)
return 1
else if(side == "blue")
if(H.mind in ticker.mode.blue_deity_prophets|ticker.mode.blue_deity_followers)
return 1
//////////////////////
//Roundend Reporting//
+6 -6
View File
@@ -6,6 +6,7 @@
icon_state = "marker"
invisibility = 60
see_in_dark = 0
see_invisible = 55
sight = SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF
languages = HUMAN | MONKEY | ALIEN | ROBOT | SLIME | DRONE | SWARMER
hud_possible = list(ANTAG_HUD)
@@ -22,7 +23,8 @@
var/list/conduits = list()
var/prophets_sacrificed_in_name = 0
var/image/ghostimage = null //For observer with darkness off visiblity
var/list/prophet_hats = list()
var/list/prophets = list()
var/datum/action/innate/godspeak/speak2god
/mob/camera/god/New()
..()
@@ -51,10 +53,8 @@
for(var/datum/mind/F in followers)
if(F.current)
F.current << "<span class='danger'>Your god is DEAD!</span>"
for(var/X in prophet_hats)
var/obj/item/clothing/head/helmet/plate/crusader/prophet/P = X
if(P.speak2god && P.speak2god.god == src)
qdel(P.speak2god)
for(var/X in prophets)
speak2god.Remove(X)
ghost_darkness_images -= ghostimage
updateallghostimages()
return ..()
@@ -200,7 +200,7 @@
var/rendered = "<font color='#045FB4'><i><span class='game say'>Divine Telepathy, <span class='name'>[name]</span> <span class='message'>[msg]</span></span></i></font>"
for(var/mob/M in mob_list)
if(is_handofgod_myprophet(M) || isobserver(M))
if(is_handofgod_myfollowers(M) || isobserver(M))
M.show_message(rendered, 2)
src << rendered
+47 -30
View File
@@ -137,43 +137,36 @@
armor = list(melee = 60, bullet = 60, laser = 60, energy = 50, bomb = 70, bio = 50, rad = 50) //religion protects you from disease and radiation, honk.
worn_x_dimension = 64
worn_y_dimension = 64
var/datum/action/innate/godspeak/speak2god
var/side = "neither"
/obj/item/clothing/head/helmet/plate/crusader/prophet/proc/assign_deity(mob/camera/god/G)
if(speak2god)
if(speak2god.owner)
speak2god.Remove(speak2god.owner)
else
speak2god = new()
speak2god.god = G
G.prophet_hats += src
/obj/item/clothing/head/helmet/plate/crusader/prophet/Destroy()
if(speak2god)
qdel(speak2god)
return ..()
/obj/item/clothing/head/helmet/plate/crusader/prophet/equipped(mob/user, slot)
/obj/item/clothing/head/helmet/plate/crusader/prophet/equipped(mob/living/carbon/user, slot)
var/faithful = 0
if(slot == slot_head)
if(speak2god)
speak2god.Grant(user)
user << "<span class='boldnotice'>You gain the ability to speak to the god this hat belongs to!</span>"
/obj/item/clothing/head/helmet/plate/crusader/prophet/dropped(mob/user)
if(speak2god)
if(speak2god.owner == user)
speak2god.Remove(user)
user << "<span class='boldnotice'>You lose the ability to speak to the god this hat belongs to!</span>"
switch(side)
if("blue")
faithful = is_handofgod_bluecultist(user)
if("red")
faithful = is_handofgod_redcultist(user)
else
faithful = 1
if(!faithful)
user << "<span class='danger'>Your mind is assaulted by a vast power, furious at your desecration!</span>"
user.emote("scream")
user.adjustFireLoss(10)
user.unEquip(src)
user.head = null
user.update_inv_head()
src.screen_loc = null
user.Weaken(1)
/obj/item/clothing/head/helmet/plate/crusader/prophet/red
icon_state = "prophet-red"
side = "red"
/obj/item/clothing/head/helmet/plate/crusader/prophet/blue
icon_state = "prophet-blue"
side = "blue"
/obj/item/clothing/head/helmet/plate/crusader/prophet/examine(mob/user)
@@ -182,8 +175,7 @@
user << "A brownish, religious-looking hat."
else
user << "A hat bestowed upon a prophet of gods and demigods."
if(speak2god && speak2god.god)
user << "This hat belongs to the [speak2god.god.side] god."
user << "This hat belongs to the [side] god."
@@ -192,6 +184,8 @@
name = "godstaff"
icon_state = "godstaff-red"
var/mob/camera/god/god = null
var/staffcooldown = 0
var/staffwait = 30
/obj/item/weapon/godstaff/examine(mob/user)
..()
@@ -201,6 +195,29 @@
user << "A powerful staff capable of changing the allegiance of god/demigod structures."
/obj/item/weapon/godstaff/attack_self(mob/living/carbon/user)
if(god && !god.is_handofgod_myprophet(user))
user << "<span class='danger'>YOU ARE NOT THE CHOSEN ONE!</span>"
return
if(!(istype(user.head, /obj/item/clothing/head/helmet/plate/crusader/prophet)))
user << "<span class='warning'>Your connection to your diety isn't strong enough! You must wear your big hat!</span>"
return
if(staffcooldown + staffwait > world.time)
return
user.visible_message("[user] chants deeply and waves their staff")
if(do_after(user, 20,1,src))
for(var/obj/structure/divine/R in orange(3,user))
user.say("Grant us true sight my god!")
if(istype(R, /obj/structure/divine/nexus)|| istype(R, /obj/structure/divine/trap))
continue
R.visible_message("<span class='danger'>[R] suddenly appears!</span>")
R.invisibility = 0
R.alpha = initial(R.alpha)
R.density = initial(R.density)
R.activate()
staffcooldown = world.time
/obj/item/weapon/godstaff/red
icon_state = "godstaff-red"
+58 -5
View File
@@ -43,9 +43,11 @@
var/datum/mind/enemy
switch(side)
if("red")
enemy = ticker.mode.blue_deities[1]
if(ticker.mode.blue_deities.len)
enemy = ticker.mode.blue_deities[1]
if("blue")
enemy = ticker.mode.red_deities[1]
if(ticker.mode.red_deities.len)
enemy = ticker.mode.red_deities[1]
if(enemy && is_handofgod_god(enemy.current))
var/mob/camera/god/enemy_god = enemy.current
@@ -117,7 +119,9 @@
if(choice && choice.current && choice.current.stat != DEAD)
src << "You choose [choice.current] as your prophet."
choice.make_Handofgod_prophet(side)
speak2god = new()
speak2god.god = src
speak2god.Grant(choice.current)
//Prophet gear
var/mob/living/carbon/human/H = choice.current
@@ -134,10 +138,9 @@
if(popehat)
var/obj/item/clothing/head/helmet/plate/crusader/prophet/P = new popehat()
P.assign_deity(src)
H.unEquip(H.head)
H << "<span class='boldnotice'>A powerful hat has been bestowed upon your head, you will need to wear this to speak with your god...</span>"
H << "<span class='boldnotice'>A powerful hat has been bestowed upon your head, you will need to wear this to utilize your staff fully..</span>"
H.equip_to_slot_or_del(P,slot_head)
if(popestick)
@@ -303,3 +306,53 @@
var/itemtype = item_types[item]
new itemtype (get_turf(src))
/mob/camera/god/verb/veil_structures()
set category = "Deity"
set name = "Veil Structures (20)"
set desc = "Hide your structures from sight and touch, but prevent yourself from using them."
if(!ability_cost(20,1,1))
return
src << "You focus your powers and start dragging your influence into the spiritual plane."
for(var/mob/M in orange(3,src))//Yes I know this is terrible, but visible message doesnt work for this
M << "<span class='warning'>The air begins to shimmer...</span>"
if(do_after(src, 30, 0, src))
for(var/obj/structure/divine/R in orange(3,src))
if(istype(R, /obj/structure/divine/nexus)|| istype(R, /obj/structure/divine/trap)||(src.side != R.side))
continue
R.visible_message("<span class='danger'>[R] fades away.</span>")
R.invisibility = 55
R.alpha = 100 //To help ghosts distinguish hidden structures
R.density = 0
R.deactivate()
src << "You hide your influence from view"
add_faith(-20)
/mob/camera/god/verb/reveal_structures()
set category = "Deity"
set name = "Reveal Structures (20)"
set desc = "Make your structures visible again and allow them to be used."
if(!ability_cost(20,1,1))
return
src << "You focus your powers and start dragging your influence into the material plane."
for(var/mob/M in orange(3,src))//Yes I know this is terrible, but visible message doesnt work for this
M << "<span class='warning'>The air begins to shimmer...</span>"
if(do_after(src, 40, 0, src))
for(var/obj/structure/divine/R in orange(3,src))
if(istype(R, /obj/structure/divine/nexus)|| istype(R, /obj/structure/divine/trap)||(src.side != R.side))
continue
R.visible_message("<span class='danger'>[R] suddenly appears!</span>")
R.invisibility = 0
R.alpha = initial(R.alpha)
R.density = initial(R.density)
R.activate()
src << "You bring your influence into view"
add_faith(-20)
+46 -1
View File
@@ -28,11 +28,18 @@
var/side = "neutral" //"blue" or "red", also used for colouring structures when construction is started by a deity
var/health = 100
var/maxhealth = 100
var/deactivated = 0 //Structures being hidden can't be used. Mainly to prevent invisible defense pylons.
var/autocolours = TRUE //do we colour to our side?
/obj/structure/divine/New()
..()
/obj/structure/divine/proc/deactivate()
deactivated = 1
/obj/structure/divine/proc/activate()
deactivated = 0
/obj/structure/divine/proc/update_icons()
if(autocolours)
@@ -280,6 +287,15 @@
if(deity)
deity.conduits += src
/obj/structure/divine/conduit/deactivate()
..()
if(deity)
deity.conduits -= src
/obj/structure/divine/conduit/activate()
..()
if(deity)
deity.conduits += src
/* //No good sprites, and not enough items to make it viable yet
/obj/structure/divine/forge
@@ -304,6 +320,8 @@
/obj/structure/divine/convertaltar/attack_hand(mob/living/user)
..()
if(deactivated)
return
var/mob/living/carbon/human/H = locate() in get_turf(src)
if(!is_handofgod_cultist(user))
user << "<span class='notice'>You try to use it, but unfortunately you don't know any rituals.</span>"
@@ -332,6 +350,8 @@
/obj/structure/divine/sacrificealtar/attack_hand(mob/living/user)
..()
if(deactivated)
return
var/mob/living/L = locate() in get_turf(src)
if(!is_handofgod_cultist(user))
user << "<span class='notice'>You try to use it, but unfortunately you don't know any rituals.</span>"
@@ -397,6 +417,8 @@
cult_only = FALSE
/obj/structure/divine/healingfountain/attack_hand(mob/living/user)
if(deactivated)
return
if(last_process + time_between_uses > world.time)
user << "<span class='notice'>The fountain appears to be empty.</span>"
return
@@ -434,7 +456,7 @@
/obj/structure/divine/powerpylon/New()
..()
if(deity && deity.god_nexus)
deity.god_nexus.powerpylons |= src
deity.god_nexus.powerpylons += src
/obj/structure/divine/powerpylon/Destroy()
@@ -443,6 +465,16 @@
return ..()
/obj/structure/divine/powerpylon/deactivate()
..()
if(deity)
deity.god_nexus.powerpylons -= src
/obj/structure/divine/powerpylon/activate()
..()
if(deity)
deity.god_nexus.powerpylons += src
/obj/structure/divine/defensepylon
name = "defense pylon"
desc = "A pylon which is blessed to withstand many blows, and fire strong bolts at nonbelievers. A god can toggle it."
@@ -478,9 +510,22 @@
/obj/structure/divine/defensepylon/attack_god(mob/camera/god/user)
if(user.side == side)
if(deactivated)
user << "You need to reveal it first!"
return
pylon_gun.on = !pylon_gun.on
icon_state = (pylon_gun.on) ? "defensepylon-[side]" : "defensepylon"
/obj/structure/divine/defensepylon/deactivate()
..()
pylon_gun.on = 0
icon_state = (pylon_gun.on) ? "defensepylon-[side]" : "defensepylon"
/obj/structure/divine/defensepylon/activate()
..()
pylon_gun.on = 1
icon_state = (pylon_gun.on) ? "defensepylon-[side]" : "defensepylon"
//This sits inside the defensepylon, to avoid copypasta
/obj/machinery/porta_turret/defensepylon_internal_turret
name = "defense pylon"
@@ -32,9 +32,7 @@
return -1
if(target.mind in ticker.mode.revolutionaries)
ticker.mode.remove_revolutionary(target.mind)
if(target.mind in ticker.mode.red_deity_followers|ticker.mode.blue_deity_followers)
ticker.mode.remove_hog_follower(target.mind)
if((target.mind in ticker.mode.cult) || (target.mind in ticker.mode.blue_deity_prophets|ticker.mode.red_deity_prophets))
if((target.mind in ticker.mode.cult) || (target.mind in ticker.mode.blue_deity_prophets|ticker.mode.red_deity_prophets|ticker.mode.red_deity_followers|ticker.mode.blue_deity_followers))
target << "<span class='warning'>You feel the corporate tendrils of Nanotrasen try to invade your mind!</span>"
else
target << "<span class='notice'>You feel a surge of loyalty towards Nanotrasen.</span>"