[MIRROR] Harvesters are more fun to play (#894)
* Harvesters are more fun to play * resolve .rej
This commit is contained in:
committed by
Poojawa
parent
593a784583
commit
6617f68604
@@ -117,12 +117,10 @@
|
||||
if(!isnewplayer(M))
|
||||
flash_color(M, flash_color="#966400", flash_time=1)
|
||||
shake_camera(M, 4, 3)
|
||||
var/ratvar_chance = min(SSticker.mode.servants_of_ratvar.len, 50)
|
||||
var/narsie_chance = SSticker.mode.cult.len
|
||||
for(var/mob/living/simple_animal/hostile/construct/harvester/C in GLOB.player_list)
|
||||
narsie_chance++
|
||||
var/ratvar_chance = min(LAZYLEN(SSticker.mode.servants_of_ratvar), 50)
|
||||
var/narsie_chance = min(LAZYLEN(SSticker.mode.cult), 50)
|
||||
ratvar_chance = rand(base_victory_chance, ratvar_chance)
|
||||
narsie_chance = rand(base_victory_chance, min(narsie_chance, 50))
|
||||
narsie_chance = rand(base_victory_chance, narsie_chance)
|
||||
if(ratvar_chance > narsie_chance)
|
||||
winner = "Ratvar"
|
||||
break
|
||||
|
||||
@@ -279,12 +279,13 @@
|
||||
var/explanation
|
||||
switch(cult_objectives[obj_count])
|
||||
if("sacrifice")
|
||||
if(GLOB.sac_complete)
|
||||
explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role]. <span class='greenannounce'>Success!</span>"
|
||||
SSblackbox.add_details("cult_objective","cult_sacrifice|SUCCESS")
|
||||
else
|
||||
explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role]. <span class='boldannounce'>Fail.</span>"
|
||||
SSblackbox.add_details("cult_objective","cult_sacrifice|FAIL")
|
||||
if(GLOB.sac_mind)
|
||||
if(GLOB.sac_complete)
|
||||
explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role]. <span class='greenannounce'>Success!</span>"
|
||||
SSblackbox.add_details("cult_objective","cult_sacrifice|SUCCESS")
|
||||
else
|
||||
explanation = "Sacrifice [GLOB.sac_mind], the [GLOB.sac_mind.assigned_role]. <span class='boldannounce'>Fail.</span>"
|
||||
SSblackbox.add_details("cult_objective","cult_sacrifice|FAIL")
|
||||
if("eldergod")
|
||||
if(!eldergod)
|
||||
explanation = "Summon Nar-Sie. <span class='greenannounce'>Success!</span>"
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
to_chat(B.current, "<span class='cultlarge'>[Nominee] could not win the cult's support and shall continue to serve as an acolyte.")
|
||||
return FALSE
|
||||
GLOB.cult_mastered = TRUE
|
||||
SSticker.mode.remove_cultist(Nominee.mind, FALSE)
|
||||
SSticker.mode.remove_cultist(Nominee.mind, TRUE)
|
||||
Nominee.mind.add_antag_datum(ANTAG_DATUM_CULT_MASTER)
|
||||
for(var/datum/mind/B in SSticker.mode.cult)
|
||||
if(B.current)
|
||||
@@ -288,7 +288,7 @@
|
||||
B.current.client.images += GLOB.blood_target_image
|
||||
attached_action.owner.update_action_buttons_icon()
|
||||
remove_ranged_ability("<span class='cult'>The marking rite is complete! It will last for 90 seconds.</span>")
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/reset_blood_target), 900, TIMER_OVERRIDE)
|
||||
GLOB.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, .proc/reset_blood_target), 900, TIMER_STOPPABLE)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -481,7 +481,12 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
if(src)
|
||||
color = "#FF0000"
|
||||
SSticker.mode.eldergod = FALSE
|
||||
new /obj/singularity/narsie/large(T) //Causes Nar-Sie to spawn even if the rune has been removed
|
||||
deltimer(GLOB.blood_target_reset_timer)
|
||||
GLOB.blood_target = new /obj/singularity/narsie/large(T) //Causes Nar-Sie to spawn even if the rune has been removed
|
||||
for(var/datum/mind/cult_mind in SSticker.mode.cult)
|
||||
if(isliving(cult_mind.current))
|
||||
var/mob/living/L = cult_mind.current
|
||||
L.narsie_act()
|
||||
|
||||
/obj/effect/rune/narsie/attackby(obj/I, mob/user, params) //Since the narsie rune takes a long time to make, add logging to removal.
|
||||
if((istype(I, /obj/item/weapon/tome) && iscultist(user)))
|
||||
|
||||
@@ -216,9 +216,8 @@
|
||||
to_chat(newstruct, "<b>You are still bound to serve the cult[stoner ? " and [stoner]":""], follow their orders and help them complete their goals at all costs.</b>")
|
||||
else if(stoner)
|
||||
to_chat(newstruct, "<b>You are still bound to serve your creator, [stoner], follow their orders and help them complete their goals at all costs.</b>")
|
||||
newstruct.throw_alert("bloodsense", /obj/screen/alert/bloodsense)
|
||||
var/obj/screen/alert/bloodsense/BS = newstruct.alerts["bloodsense"]
|
||||
BS.Cviewer = newstruct
|
||||
var/obj/screen/alert/bloodsense/BS = newstruct.throw_alert("bloodsense", /obj/screen/alert/bloodsense)
|
||||
BS.Cviewer = newstruct
|
||||
newstruct.cancel_camera()
|
||||
|
||||
|
||||
@@ -271,4 +270,4 @@
|
||||
T.dropItemToGround(W)
|
||||
init_shade(T, U)
|
||||
qdel(T)
|
||||
return 1
|
||||
return 1
|
||||
@@ -52,7 +52,7 @@
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/narsie_act()
|
||||
if(clockwork && clockwork != initial(clockwork) && prob(20)) //if it's clockwork but isn't normally clockwork
|
||||
if(clockwork && clockwork != initial(clockwork)) //if it's clockwork but isn't normally clockwork
|
||||
clockwork = FALSE
|
||||
icon_screen = initial(icon_screen)
|
||||
icon_keyboard = initial(icon_keyboard)
|
||||
|
||||
@@ -179,18 +179,17 @@
|
||||
/obj/machinery/door/airlock/narsie_act()
|
||||
var/turf/T = get_turf(src)
|
||||
var/runed = prob(20)
|
||||
if(prob(20))
|
||||
if(glass)
|
||||
if(runed)
|
||||
new/obj/machinery/door/airlock/cult/glass(T)
|
||||
else
|
||||
new/obj/machinery/door/airlock/cult/unruned/glass(T)
|
||||
if(glass)
|
||||
if(runed)
|
||||
new/obj/machinery/door/airlock/cult/glass(T)
|
||||
else
|
||||
if(runed)
|
||||
new/obj/machinery/door/airlock/cult(T)
|
||||
else
|
||||
new/obj/machinery/door/airlock/cult/unruned(T)
|
||||
qdel(src)
|
||||
new/obj/machinery/door/airlock/cult/unruned/glass(T)
|
||||
else
|
||||
if(runed)
|
||||
new/obj/machinery/door/airlock/cult(T)
|
||||
else
|
||||
new/obj/machinery/door/airlock/cult/unruned(T)
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/door/airlock/ratvar_act() //Airlocks become pinion airlocks that only allow servants
|
||||
if(glass)
|
||||
|
||||
@@ -71,9 +71,8 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
|
||||
qdel(src)
|
||||
|
||||
/obj/item/stack/sheet/metal/narsie_act()
|
||||
if(prob(20))
|
||||
new /obj/item/stack/sheet/runed_metal(loc, amount)
|
||||
qdel(src)
|
||||
new /obj/item/stack/sheet/runed_metal(loc, amount)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/stack/sheet/metal/fifty
|
||||
amount = 50
|
||||
@@ -325,9 +324,8 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \
|
||||
turf_type = /turf/open/floor/clockwork
|
||||
|
||||
/obj/item/stack/tile/brass/narsie_act()
|
||||
if(prob(20))
|
||||
new /obj/item/stack/sheet/runed_metal(loc, amount)
|
||||
qdel(src)
|
||||
new /obj/item/stack/sheet/runed_metal(loc, amount)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/stack/tile/brass/Initialize(mapload, new_amount, merge = TRUE)
|
||||
recipes = GLOB.brass_recipes
|
||||
|
||||
@@ -37,10 +37,9 @@
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/structure/chair/narsie_act()
|
||||
if(prob(20))
|
||||
var/obj/structure/chair/wood/W = new/obj/structure/chair/wood(get_turf(src))
|
||||
W.setDir(dir)
|
||||
qdel(src)
|
||||
var/obj/structure/chair/wood/W = new/obj/structure/chair/wood(get_turf(src))
|
||||
W.setDir(dir)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/chair/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/wrench) && !(flags&NODECONSTRUCT))
|
||||
@@ -239,10 +238,9 @@
|
||||
var/obj/structure/chair/origin_type = /obj/structure/chair
|
||||
|
||||
/obj/item/chair/narsie_act()
|
||||
if(prob(20))
|
||||
var/obj/item/chair/wood/W = new/obj/item/chair/wood(get_turf(src))
|
||||
W.setDir(dir)
|
||||
qdel(src)
|
||||
var/obj/item/chair/wood/W = new/obj/item/chair/wood(get_turf(src))
|
||||
W.setDir(dir)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/chair/attack_self(mob/user)
|
||||
plant(user)
|
||||
|
||||
@@ -297,9 +297,8 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/girder/narsie_act()
|
||||
if(prob(25))
|
||||
new /obj/structure/girder/cult(loc)
|
||||
qdel(src)
|
||||
new /obj/structure/girder/cult(loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/girder/displaced
|
||||
name = "displaced girder"
|
||||
|
||||
@@ -84,9 +84,8 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/table_frame/narsie_act()
|
||||
if(prob(20))
|
||||
new /obj/structure/table_frame/wood(src.loc)
|
||||
qdel(src)
|
||||
new /obj/structure/table_frame/wood(src.loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/table_frame/ratvar_act()
|
||||
new /obj/structure/table_frame/brass(src.loc)
|
||||
|
||||
@@ -47,8 +47,7 @@
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
/obj/structure/table/narsie_act()
|
||||
if(prob(20))
|
||||
new /obj/structure/table/wood(src.loc)
|
||||
new /obj/structure/table/wood(src.loc)
|
||||
|
||||
/obj/structure/table/ratvar_act()
|
||||
new /obj/structure/table/reinforced/brass(src.loc)
|
||||
|
||||
@@ -188,8 +188,9 @@
|
||||
else if(prob(50))
|
||||
ReplaceWithLattice()
|
||||
|
||||
/turf/open/floor/narsie_act()
|
||||
if(prob(20))
|
||||
/turf/open/floor/narsie_act(force, ignore_mobs, probability = 20)
|
||||
. = ..()
|
||||
if(.)
|
||||
ChangeTurf(/turf/open/floor/engine/cult)
|
||||
|
||||
/turf/open/floor/ratvar_act(force, ignore_mobs)
|
||||
|
||||
@@ -158,8 +158,14 @@
|
||||
if(smooth)
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
/turf/open/floor/carpet/narsie_act()
|
||||
return
|
||||
/turf/open/floor/carpet/narsie_act(force, ignore_mobs, probability = 20)
|
||||
. = (prob(probability) || force)
|
||||
for(var/I in src)
|
||||
var/atom/A = I
|
||||
if(ignore_mobs && ismob(A))
|
||||
continue
|
||||
if(ismob(A) || .)
|
||||
A.narsie_act()
|
||||
|
||||
/turf/open/floor/carpet/break_tile()
|
||||
broken = 1
|
||||
|
||||
@@ -250,9 +250,10 @@
|
||||
if(severity < 3 || target == src)
|
||||
ChangeTurf(src.baseturf)
|
||||
|
||||
/turf/open/floor/vines/narsie_act()
|
||||
if(prob(20))
|
||||
ChangeTurf(src.baseturf) //nar sie eats this shit
|
||||
/turf/open/floor/vines/narsie_act(force, ignore_mobs, probability = 20)
|
||||
if(prob(probability) || force)
|
||||
ChangeTurf(baseturf) //nar sie eats this shit
|
||||
narsie_act(force, ignore_mobs, probability)
|
||||
|
||||
/turf/open/floor/vines/singularity_pull(S, current_size)
|
||||
if(current_size >= STAGE_FIVE)
|
||||
|
||||
@@ -125,9 +125,6 @@
|
||||
qdel(realappearence)
|
||||
realappearence = null
|
||||
|
||||
/turf/open/floor/engine/cult/narsie_act()
|
||||
return
|
||||
|
||||
/turf/open/floor/engine/cult/ratvar_act()
|
||||
. = ..()
|
||||
if(istype(src, /turf/open/floor/engine/cult)) //if we haven't changed type
|
||||
|
||||
@@ -4,19 +4,27 @@
|
||||
icon = 'icons/turf/walls/cult_wall.dmi'
|
||||
icon_state = "cult"
|
||||
canSmoothWith = null
|
||||
smooth = SMOOTH_MORE
|
||||
sheet_type = /obj/item/stack/sheet/runed_metal
|
||||
sheet_amount = 1
|
||||
girder_type = /obj/structure/girder/cult
|
||||
|
||||
/turf/closed/wall/mineral/cult/Initialize()
|
||||
new /obj/effect/overlay/temp/cult/turf(src)
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
/turf/closed/wall/mineral/cult/devastate_wall()
|
||||
new sheet_type(get_turf(src), sheet_amount)
|
||||
|
||||
/turf/closed/wall/mineral/cult/narsie_act()
|
||||
return
|
||||
/turf/closed/wall/mineral/cult/Exited(atom/movable/AM, atom/newloc)
|
||||
. = ..()
|
||||
if(istype(AM, /mob/living/simple_animal/hostile/construct/harvester)) //harvesters can go through cult walls, dragging something with
|
||||
var/mob/living/simple_animal/hostile/construct/harvester/H = AM
|
||||
var/atom/movable/stored_pulling = H.pulling
|
||||
if(stored_pulling)
|
||||
stored_pulling.setDir(get_dir(stored_pulling.loc, newloc))
|
||||
stored_pulling.forceMove(src)
|
||||
H.start_pulling(stored_pulling, TRUE)
|
||||
|
||||
/turf/closed/wall/mineral/cult/ratvar_act()
|
||||
. = ..()
|
||||
|
||||
@@ -238,8 +238,9 @@
|
||||
if(prob(30))
|
||||
dismantle_wall()
|
||||
|
||||
/turf/closed/wall/narsie_act()
|
||||
if(prob(20))
|
||||
/turf/closed/wall/narsie_act(force, ignore_mobs, probability = 20)
|
||||
. = ..()
|
||||
if(.)
|
||||
ChangeTurf(/turf/closed/wall/mineral/cult)
|
||||
|
||||
/turf/closed/wall/ratvar_act(force, ignore_mobs)
|
||||
|
||||
@@ -375,6 +375,15 @@
|
||||
A.ex_act(severity, target)
|
||||
CHECK_TICK
|
||||
|
||||
/turf/narsie_act(force, ignore_mobs, probability = 20)
|
||||
. = (prob(probability) || force)
|
||||
for(var/I in src)
|
||||
var/atom/A = I
|
||||
if(ignore_mobs && ismob(A))
|
||||
continue
|
||||
if(ismob(A) || .)
|
||||
A.narsie_act()
|
||||
|
||||
/turf/ratvar_act(force, ignore_mobs, probability = 40)
|
||||
. = (prob(probability) || force)
|
||||
for(var/I in src)
|
||||
|
||||
Reference in New Issue
Block a user