Merge branch 'master' into upstream-merge-30079
This commit is contained in:
@@ -108,6 +108,7 @@
|
||||
new_objective.explanation_text = "Protect [usr.real_name], the wizard."
|
||||
M.mind.objectives += new_objective
|
||||
SSticker.mode.apprentices += M.mind
|
||||
M.mind.assigned_role = "Apprentice"
|
||||
M.mind.special_role = "apprentice"
|
||||
SSticker.mode.update_wiz_icons_added(M.mind)
|
||||
SEND_SOUND(M, sound('sound/effects/magic.ogg'))
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
diff a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm (rejected hunks)
|
||||
@@ -108,6 +108,7 @@
|
||||
new_objective.explanation_text = "Protect [usr.real_name], the wizard."
|
||||
M.mind.objectives += new_objective
|
||||
SSticker.mode.apprentices += M.mind
|
||||
+ M.mind.assigned_role = "Apprentice"
|
||||
M.mind.special_role = "apprentice"
|
||||
SSticker.mode.update_wiz_icons_added(M.mind)
|
||||
M << sound('sound/effects/magic.ogg')
|
||||
@@ -7,11 +7,9 @@
|
||||
brute_resist = 0.25
|
||||
explosion_block = 3
|
||||
point_return = 4
|
||||
atmosblock = 1
|
||||
atmosblock = TRUE
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90)
|
||||
|
||||
|
||||
|
||||
/obj/structure/blob/shield/scannerreport()
|
||||
if(atmosblock)
|
||||
return "Will prevent the spread of atmospheric changes."
|
||||
@@ -26,10 +24,10 @@
|
||||
icon_state = "blob_shield_damaged"
|
||||
name = "weakened strong blob"
|
||||
desc = "A wall of twitching tendrils."
|
||||
atmosblock = 0
|
||||
atmosblock = FALSE
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
name = initial(name)
|
||||
desc = initial(desc)
|
||||
atmosblock = 1
|
||||
air_update_turf(1)
|
||||
atmosblock = TRUE
|
||||
air_update_turf(1)
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm (rejected hunks)
|
||||
@@ -175,7 +175,7 @@
|
||||
SEND_SOUND(blobber, sound('sound/effects/attackblob.ogg'))
|
||||
to_chat(blobber, "<b>You are a blobbernaut!</b>")
|
||||
to_chat(blobber, "You are powerful, hard to kill, and slowly regenerate near nodes and cores, but will slowly die if not near the blob or if the factory that made you is killed.")
|
||||
- to_chat(blobber, "You can communicate with other blobbernauts and GLOB.overminds via <b>:b</b>")
|
||||
+ to_chat(blobber, "You can communicate with other blobbernauts and overminds via <b>:b</b>")
|
||||
to_chat(blobber, "Your overmind's blob reagent is: <b><font color=\"[blob_reagent_datum.color]\">[blob_reagent_datum.name]</b></font>!")
|
||||
to_chat(blobber, "The <b><font color=\"[blob_reagent_datum.color]\">[blob_reagent_datum.name]</b></font> reagent [blob_reagent_datum.shortdesc ? "[blob_reagent_datum.shortdesc]" : "[blob_reagent_datum.description]"]")
|
||||
if(blobber)
|
||||
@@ -8,6 +8,7 @@
|
||||
opacity = 0
|
||||
anchored = TRUE
|
||||
layer = BELOW_MOB_LAYER
|
||||
CanAtmosPass = ATMOS_PASS_PROC
|
||||
var/point_return = 0 //How many points the blob gets back when it removes a blob of that type. If less than 0, blob cannot be removed.
|
||||
max_integrity = 30
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 70)
|
||||
@@ -16,19 +17,9 @@
|
||||
var/heal_timestamp = 0 //we got healed when?
|
||||
var/brute_resist = 0.5 //multiplies brute damage by this
|
||||
var/fire_resist = 1 //multiplies burn damage by this
|
||||
var/atmosblock = 0 //if the blob blocks atmos and heat spread
|
||||
var/atmosblock = FALSE //if the blob blocks atmos and heat spread
|
||||
var/mob/camera/blob/overmind
|
||||
|
||||
/obj/structure/blob/attack_hand(mob/M)
|
||||
. = ..()
|
||||
M.changeNext_move(CLICK_CD_MELEE)
|
||||
var/a = pick("gently stroke", "nuzzle", "affectionatly pet", "cuddle")
|
||||
M.visible_message("<span class='notice'>[M] [a]s [src]!</span>", "<span class='notice'>You [a] [src]!</span>")
|
||||
to_chat(overmind, "<span class='notice'>[M] [a]s you!</span>")
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 50, 1) //SQUISH SQUISH
|
||||
|
||||
|
||||
|
||||
/obj/structure/blob/Initialize()
|
||||
var/area/Ablob = get_area(loc)
|
||||
if(Ablob.blob_allowed) //Is this area allowed for winning as blob?
|
||||
@@ -37,17 +28,16 @@
|
||||
setDir(pick(GLOB.cardinals))
|
||||
update_icon()
|
||||
.= ..()
|
||||
ConsumeTile()
|
||||
if(atmosblock)
|
||||
CanAtmosPass = ATMOS_PASS_NO
|
||||
air_update_turf(1)
|
||||
ConsumeTile()
|
||||
|
||||
/obj/structure/blob/proc/creation_action() //When it's created by the overmind, do this.
|
||||
return
|
||||
|
||||
/obj/structure/blob/Destroy()
|
||||
if(atmosblock)
|
||||
atmosblock = 0
|
||||
atmosblock = FALSE
|
||||
air_update_turf(1)
|
||||
GLOB.blobs_legit -= src //if it was in the legit blobs list, it isn't now
|
||||
GLOB.blobs -= src //it's no longer in the all blobs list either
|
||||
@@ -79,6 +69,9 @@
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/structure/blob/CanAtmosPass(turf/T)
|
||||
return !atmosblock
|
||||
|
||||
/obj/structure/blob/CanAStarPass(ID, dir, caller)
|
||||
. = 0
|
||||
if(ismovableatom(caller))
|
||||
@@ -353,4 +346,4 @@
|
||||
icon_state = "blob"
|
||||
name = "blob"
|
||||
desc = "A thick wall of writhing tendrils."
|
||||
brute_resist = 0.25
|
||||
brute_resist = 0.25
|
||||
@@ -1,19 +0,0 @@
|
||||
diff a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm (rejected hunks)
|
||||
@@ -395,7 +395,7 @@
|
||||
/obj/item/shield/changeling
|
||||
name = "shield-like mass"
|
||||
desc = "A mass of tough, boney tissue. You can still see the fingers as a twisted pattern in the shield."
|
||||
- flags = ABSTRACT | NODROP | DROPDEL
|
||||
+ flags_1 = ABSTRACT_1 | NODROP_1 | DROPDEL_1
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "ling_shield"
|
||||
lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi'
|
||||
@@ -443,7 +443,7 @@
|
||||
name = "flesh mass"
|
||||
icon_state = "lingspacesuit"
|
||||
desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel."
|
||||
- flags = STOPSPRESSUREDMAGE | NODROP | DROPDEL //Not THICKMATERIAL because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff)
|
||||
+ flags_1 = STOPSPRESSUREDMAGE_1 | NODROP_1 | DROPDEL_1 //Not THICKMATERIAL_1 because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff)
|
||||
allowed = list(/obj/item/device/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 90, acid = 90) //No armor at all.
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
playsound(targetturf, 'sound/magic/staff_healing.ogg', 50, 1)
|
||||
|
||||
if(has_holy_water)
|
||||
L.reagents.remove_reagent("holywater", 1000)
|
||||
L.reagents.del_reagent("holywater")
|
||||
|
||||
remove_ranged_ability()
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm b/code/game/gamemodes/clock_cult/clock_items/ratvarian_spear.dm (rejected hunks)
|
||||
@@ -6,6 +6,8 @@
|
||||
icon = 'icons/obj/clockwork_objects.dmi'
|
||||
icon_state = "ratvarian_spear"
|
||||
item_state = "ratvarian_spear"
|
||||
+ lefthand_file = 'icons/mob/inhands/antag/clockwork_lefthand.dmi'
|
||||
+ righthand_file = 'icons/mob/inhands/antag/clockwork_righthand.dmi'
|
||||
force = 15 //Extra damage is dealt to targets in attack()
|
||||
throwforce = 25
|
||||
armour_penetration = 10
|
||||
@@ -3,8 +3,10 @@
|
||||
desc = "A sword humming with unholy energy. It glows with a dim red light."
|
||||
icon_state = "cultblade"
|
||||
item_state = "cultblade"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
|
||||
lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/64x64_righthand.dmi'
|
||||
inhand_x_dimension = 64
|
||||
inhand_y_dimension = 64
|
||||
flags_1 = CONDUCT_1
|
||||
sharpness = IS_SHARP
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
@@ -55,6 +57,8 @@
|
||||
item_state = "knife"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi'
|
||||
inhand_x_dimension = 32
|
||||
inhand_y_dimension = 32
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
force = 15
|
||||
throwforce = 25
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm (rejected hunks)
|
||||
@@ -31,7 +31,7 @@
|
||||
/obj/item/melee/cultblade/ghost
|
||||
name = "eldritch sword"
|
||||
force = 19 //can't break normal airlocks
|
||||
- flags = NODROP|DROPDEL
|
||||
+ flags_1 = NODROP_1|DROPDEL_1
|
||||
|
||||
/obj/item/melee/cultblade/pickup(mob/living/user)
|
||||
..()
|
||||
@@ -913,7 +913,7 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
var/list/ghosts_on_rune = list()
|
||||
for(var/mob/dead/observer/O in get_turf(src))
|
||||
if(O.client && !jobban_isbanned(O, ROLE_CULTIST))
|
||||
ghosts_on_rune |= O
|
||||
ghosts_on_rune += O
|
||||
if(!ghosts_on_rune.len)
|
||||
to_chat(user, "<span class='cultitalic'>There are no spirits near [src]!</span>")
|
||||
fail_invoke()
|
||||
@@ -926,9 +926,9 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
var/list/ghosts_on_rune = list()
|
||||
for(var/mob/dead/observer/O in get_turf(src))
|
||||
if(O.client && !jobban_isbanned(O, ROLE_CULTIST))
|
||||
ghosts_on_rune |= O
|
||||
ghosts_on_rune += O
|
||||
var/mob/dead/observer/ghost_to_spawn = pick(ghosts_on_rune)
|
||||
var/mob/living/carbon/human/new_human = new(get_turf(src))
|
||||
var/mob/living/carbon/human/cult_ghost/new_human = new(get_turf(src))
|
||||
new_human.real_name = ghost_to_spawn.real_name
|
||||
new_human.alpha = 150 //Makes them translucent
|
||||
new_human.equipOutfit(/datum/outfit/ghost_cultist) //give them armor
|
||||
@@ -959,3 +959,12 @@ structure_check() searches for nearby cultist structures required for the invoca
|
||||
for(var/obj/I in new_human)
|
||||
new_human.dropItemToGround(I, TRUE)
|
||||
new_human.dust()
|
||||
|
||||
/mob/living/carbon/human/cult_ghost/spill_organs(no_brain, no_organs, no_bodyparts) //cult ghosts never drop a brain
|
||||
no_brain = TRUE
|
||||
. = ..()
|
||||
|
||||
/mob/living/carbon/human/cult_ghost/getorganszone(zone, subzones = 0)
|
||||
. = ..()
|
||||
for(var/obj/item/organ/brain/B in .) //they're not that smart, really
|
||||
. -= B
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm (rejected hunks)
|
||||
@@ -343,7 +343,7 @@
|
||||
desc = "Shackles that bind the wrists with sinister magic."
|
||||
trashtype = /obj/item/restraints/handcuffs/energy/used
|
||||
origin_tech = "materials=2;magnets=5"
|
||||
- flags = DROPDEL
|
||||
+ flags_1 = DROPDEL_1
|
||||
|
||||
/obj/item/restraints/handcuffs/energy/cult/used/dropped(mob/user)
|
||||
user.visible_message("<span class='danger'>[user]'s shackles shatter in a discharge of dark magic!</span>", \
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm (rejected hunks)
|
||||
@@ -499,7 +499,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
|
||||
/obj/item/restraints/handcuffs/energy/used
|
||||
desc = "energy discharge"
|
||||
- flags = DROPDEL
|
||||
+ flags_1 = DROPDEL_1
|
||||
|
||||
/obj/item/restraints/handcuffs/energy/used/dropped(mob/user)
|
||||
user.visible_message("<span class='danger'>[user]'s [src] break in a discharge of energy!</span>", \
|
||||
@@ -1,10 +0,0 @@
|
||||
diff a/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm b/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm (rejected hunks)
|
||||
@@ -23,7 +23,7 @@
|
||||
var/obj/item/clothing/suit/armor/abductor/vest/V = locate() in H
|
||||
if(V)
|
||||
console.AddVest(V)
|
||||
- V.flags |= NODROP
|
||||
+ V.flags_1 |= NODROP_1
|
||||
|
||||
var/obj/item/storage/backpack/B = locate() in H
|
||||
if(B)
|
||||
@@ -1,8 +1,8 @@
|
||||
/datum/round_event_control/spawn_swarmer
|
||||
name = "Spawn Swarmer Shell"
|
||||
typepath = /datum/round_event/spawn_swarmer
|
||||
weight = 7
|
||||
max_occurrences = 1 //Only once okay fam
|
||||
weight = 0
|
||||
max_occurrences = 0 //Only once okay fam
|
||||
earliest_start = 18000 //30 minutes
|
||||
min_players = 15
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
attack_sound = 'sound/effects/blobattack.ogg'
|
||||
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2)
|
||||
|
||||
var/morphed = 0
|
||||
var/morphed = FALSE
|
||||
var/atom/movable/form = null
|
||||
var/morph_time = 0
|
||||
var/static/list/blacklist_typecache = typecacheof(list(
|
||||
@@ -93,7 +93,10 @@
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/hostile/morph/proc/assume(atom/movable/target)
|
||||
morphed = 1
|
||||
if(morphed)
|
||||
to_chat(src, "<span class='warning'>You must restore to your original form first!</span>")
|
||||
return
|
||||
morphed = TRUE
|
||||
form = target
|
||||
|
||||
visible_message("<span class='warning'>[src] suddenly twists and changes shape, becoming a copy of [target]!</span>", \
|
||||
@@ -117,8 +120,9 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/morph/proc/restore()
|
||||
if(!morphed)
|
||||
to_chat(src, "<span class='warning'>You're already in your normal form!</span>")
|
||||
return
|
||||
morphed = 0
|
||||
morphed = FALSE
|
||||
form = null
|
||||
alpha = initial(alpha)
|
||||
color = initial(color)
|
||||
|
||||
Reference in New Issue
Block a user