Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion __DEFINES/_macros.dm
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@

#define isgripper(G) (istype(G, /obj/item/weapon/gripper))

#define isholyweapon(I) (istype(I, /obj/item/weapon/nullrod) || istype(I, /obj/item/weapon/gun/hookshot/whip/vampkiller))
#define isholyweapon(I) (istype(I, /obj/item/weapon/nullrod) || istype(I, /obj/item/weapon/gun/hookshot/whip/vampkiller) || istype(I, /obj/item/weapon/boomerang/cross))

#define isholyprotection(I) (istype(I, /obj/item/weapon/nullrod))

Expand Down
1 change: 1 addition & 0 deletions __DEFINES/reagents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#define STOXIN "stoxin"
#define INAPROVALINE "inaprovaline"
#define HOLYWATER "holywater"
#define SACREDWATER "sacredwater"
#define SEROTROTIUM "serotrotium"
#define SILICATE "silicate"
#define OXYGEN "oxygen"
Expand Down
4 changes: 4 additions & 0 deletions __DEFINES/setup.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1977,6 +1977,10 @@ var/list/weekend_days = list("Friday", "Saturday", "Sunday")
#define PS_NARSIEHASRISEN3 "Nar-SieHasRisen3"
#define PS_ZAS_DUST "ZAS Dust"
#define PS_DANDELIONS "Dandelions"
#define PS_CROSS_DUST "Cross Dust"
#define PS_CROSS_ORB "Cross Orb"
#define PS_SACRED_FLAME "Sacred Flame"
#define PS_SACRED_FLAME2 "Sacred Flame2"

//Particles variable defines
#define PVAR_SPAWNING "spawning"
Expand Down
10 changes: 5 additions & 5 deletions code/datums/gamemode/factions/bloodcult/bloodcult_effects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -110,17 +110,17 @@
/obj/effect/afterimage/black
image_color = "black"

/obj/effect/afterimage/New(var/turf/loc, var/atom/model, var/fadout = 5)
/obj/effect/afterimage/New(var/turf/loc, var/atom/model, var/fadout = 5, var/initial_alpha = 255, var/lay = NARSIE_GLOW, var/pla = ABOVE_LIGHTING_PLANE)
..()
if(model)
src.appearance = model.appearance
appearance = model.appearance
invisibility = 0
alpha = 255
alpha = initial_alpha
dir = model.dir
if (image_color)
color = image_color
layer = NARSIE_GLOW
plane = ABOVE_LIGHTING_PLANE
layer = lay
plane = pla
animate(src,alpha = 0, time = fadout)
spawn(fadout)
qdel(src)
Expand Down
18 changes: 12 additions & 6 deletions code/datums/gamemode/role/cultist.dm
Original file line number Diff line number Diff line change
Expand Up @@ -552,7 +552,7 @@
H.stuttering = max(H.stuttering, 12)
H.Jitter(12)

/datum/role/cultist/handle_splashed_reagent(var/reagent_id)//also proc'd when holy water is drinked or ingested in any way
/datum/role/cultist/handle_splashed_reagent(var/reagent_id, var/method, var/volume)//also proc'd when holy water is drinked or ingested in any way
var/mob/living/carbon/human/H = antag.current
if (!istype(H))
return
Expand All @@ -561,11 +561,17 @@
holywarning_cooldown = 5
to_chat(H, "<span class='danger'>The cold touch of holy water makes your head spin, you're having trouble walking straight.</span>")

if (reagent_id == HOLYWATER || reagent_id == INCENSE_HAREBELLS)
H.eye_blurry = max(H.eye_blurry, 12)
H.Dizzy(12)
H.stuttering = max(H.stuttering, 12)
H.Jitter(12)
if (reagent_id == SACREDWATER)
if (holywarning_cooldown <= 0)
holywarning_cooldown = 5
to_chat(H, "<span class='danger'>The burning touch of sacred water sears your skin.</span>")

switch(reagent_id)
if (HOLYWATER,INCENSE_HAREBELLS,SACREDWATER)
H.eye_blurry = max(H.eye_blurry, 12)
H.Dizzy(12)
H.stuttering = max(H.stuttering, 12)
H.Jitter(12)

/datum/role/cultist/proc/write_rune(var/word_to_draw)
var/mob/living/user = antag.current
Expand Down
2 changes: 1 addition & 1 deletion code/datums/gamemode/role/role.dm
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,7 @@
/datum/role/proc/handle_reagent(var/reagent_id)
return

/datum/role/proc/handle_splashed_reagent(var/reagent_id)
/datum/role/proc/handle_splashed_reagent(var/reagent_id, var/method, var/volume)
return

//Does the role have special clothing restrictions?
Expand Down
11 changes: 3 additions & 8 deletions code/datums/gamemode/role/vampire_role.dm
Original file line number Diff line number Diff line change
Expand Up @@ -424,7 +424,7 @@

/datum/role/vampire/handle_reagent(var/reagent_id)
switch(reagent_id)
if (HOLYWATER,INCENSE_HAREBELLS)
if (HOLYWATER,INCENSE_HAREBELLS,SACREDWATER)
var/mob/living/carbon/human/H = antag.current
if (!istype(H))
return
Expand All @@ -436,12 +436,9 @@
to_chat(H, "<span class='warning'>A freezing liquid permeates your bloodstream. You're still too human to be smited!</span>")
smitecounter += 2 //Basically nothing, unless you drank multiple bottles of holy water (250 units to catch on fire !)

/*
Commented out for now.

/datum/role/vampire/handle_splashed_reagent(var/reagent_id)
/datum/role/vampire/handle_splashed_reagent(var/reagent_id, var/method, var/volume)
switch (reagent_id)
if (HOLYWATER)
if (HOLYWATER,SACREDWATER)
var/mob/living/carbon/human/H = antag.current
if (!istype(H))
return
Expand Down Expand Up @@ -483,8 +480,6 @@
H.take_organ_damage(min(15, volume * 2))
smitecounter += 5

*/

/*
-- Helpers --
*/
Expand Down
6 changes: 4 additions & 2 deletions code/datums/religions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1429,8 +1429,10 @@ var/list/all_bible_styles = list(
bookstyle = "Holy Grimoire"

/datum/religion/belmont/equip_chaplain(var/mob/living/carbon/human/H)
H.equip_or_collect(new /obj/item/clothing/suit/vamphunter, slot_w_uniform)
H.equip_or_collect(new /obj/item/clothing/head/vamphunter, slot_shoes)
H.collect_in_backpack(new /obj/item/clothing/suit/vamphunter)
H.collect_in_backpack(new /obj/item/clothing/head/vamphunter)
H.collect_in_backpack(new /obj/item/weapon/storage/box/castlevania(H))
H.equip_or_collect(new /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater/sacredwater, slot_r_store)

/datum/religion/esports
name = "E-Sports"
Expand Down
11 changes: 7 additions & 4 deletions code/game/atoms.dm
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,10 @@ var/global/list/ghdel_profiling = list()
/atom/proc/throw_impact(atom/hit_atom, var/speed, mob/user, var/list/impact_whitelist)
if(istype(hit_atom,/mob/living))
var/mob/living/M = hit_atom
playsound(src, src.throw_impact_sound, 80, 1)
M.hitby(src,speed,src.dir,impact_whitelist)
if (M.hitby(src,speed,src.dir,impact_whitelist))
playsound(loc,'sound/effects/slap2.ogg', 15, 1)//grabbed the item
else
playsound(src, src.throw_impact_sound, 80, 1)
log_attack("<font color='red'>[hit_atom] ([M ? M.ckey : "what"]) was hit by [src] thrown by [user] ([user ? user.ckey : "what"])</font>")

else if(isobj(hit_atom))
Expand All @@ -170,8 +172,9 @@ var/global/list/ghdel_profiling = list()
else if(isturf(hit_atom) && !istype(src,/obj/mecha))//heavy mechs don't just bounce off walls, also it can fuck up rocket dashes
var/turf/T = hit_atom
if(T.density)
spawn(2)
step(src, turn(src.dir, 180))
if (isturf(loc))
spawn(2)
step(src, turn(src.dir, 180))
if(istype(src,/mob/living))
var/mob/living/M = src
M.take_organ_damage(10)
Expand Down
63 changes: 63 additions & 0 deletions code/game/objects/effects/particles_system.dm
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,10 @@ var/list/particle_string_to_type = list(
PS_NARSIEHASRISEN3 = /particles/narsie_has_risen/last,
PS_ZAS_DUST = /particles/zas_dust,
PS_DANDELIONS = /particles/dandelions,
PS_CROSS_DUST = /particles/cross_dust,
PS_CROSS_ORB = /particles/cross_orb,
PS_SACRED_FLAME = /particles/sacred_flame,
PS_SACRED_FLAME2 = /particles/sacred_flame/alt,
)

/particles
Expand Down Expand Up @@ -486,3 +490,62 @@ var/list/particle_string_to_type = list(
spawn(SSair.wait)
if (last_pollen_time == this_pollen_time)
adjust_particles(PVAR_SPAWNING, 0, pollen)

//CROSS DUST & ORBB
/particles/cross_dust
width = 64
height = 64
count = 10

lifespan = 10
fade = 2
spawning = 1.5

icon = 'icons/effects/effects_particles.dmi'
icon_state = list("cross_dust_1","cross_dust_2","cross_dust_3")
position = generator("box", list(-12,-12), list(12,12))
velocity = list(0,-2)
drift = generator("box", list(-0.2,-0.2), list(0.2,0.2))

appearance_flags = RESET_COLOR|RESET_ALPHA
blend_mode = BLEND_ADD
plane = ABOVE_LIGHTING_PLANE


/particles/cross_orb
count = 2

lifespan = 10
spawning = 0.5

icon = 'icons/effects/effects_particles.dmi'
icon_state = list("cross_orb")
position = generator("box", list(-12,-12), list(12,12))
velocity = list(0,-2)
friction = 0.1
drift = generator("box", list(-0.2,-0.2), list(0.2,0.2))
grow = list(-0.2, -0.2)

appearance_flags = RESET_COLOR|RESET_ALPHA
plane = ABOVE_LIGHTING_PLANE

//SACRED FLAME
/particles/sacred_flame
width = 96
height = 96
count = 30

lifespan = 10
fade = 5
spawning = 1.5

icon = 'icons/effects/effects_particles.dmi'
icon_state = "sacred_flame"
position = generator("box", list(-15,-15), list(15,15))
friction = 0.1
drift = generator("box", list(-0.2,-0.2), list(0.2,0.2))
scale = list(0.6, 0.6)
grow = list(0.1, 0.1)

/particles/sacred_flame/alt
plane = LIGHTING_PLANE
42 changes: 40 additions & 2 deletions code/game/objects/effects/trackers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
icon_state = "soul2"
mouse_opacity = 0
animate_movement = 0
density = 0
var/absolute_X = 0
var/absolute_Y = 0
var/atom/target = null
Expand All @@ -33,6 +34,8 @@
color = "red"

/obj/effect/tracker/proc/process_step()
if (gcDestroyed)
return
if(!target)
target = pick(player_list)
return
Expand All @@ -48,9 +51,11 @@

var/dist = sqrt(abs(dx)**2 + abs(dy)**2)
if(dist > maxdist)
on_expire()
qdel(src)
return
else if(dist < 16)
on_expire()
qdel(src)
return

Expand All @@ -70,9 +75,32 @@

speed += acceleration

x = absolute_X/WORLD_ICON_SIZE
y = absolute_Y/WORLD_ICON_SIZE
var/next_x = absolute_X/WORLD_ICON_SIZE
var/next_y = absolute_Y/WORLD_ICON_SIZE

if (density && ((x != next_x) || (y != next_y)))//changing tile, let's check for collisions if enabled
var/turf/T_old = locate(x,y,z)
var/turf/T_new = locate(next_x,next_y,z)
if (!T_new.Cross(src,T_old))
if (to_bump(T_new))
on_expire()
qdel(src)
return
for (var/atom/A in T_new)
if (A == src)
continue
if (!A.Cross(src,T_old))
if (to_bump(A))
on_expire()
qdel(src)
return

if (!gcDestroyed)
x = next_x
y = next_y

update_icon()
on_step()

sleep(refresh)
process_step()
Expand All @@ -91,6 +119,16 @@
/obj/effect/tracker/singularity_pull()
return

/obj/effect/tracker/proc/on_expire()
return

/obj/effect/tracker/proc/on_step()
return

//used by dense trakers such as boomerangs
/obj/effect/tracker/to_bump(var/atom/Obstacle)
return FALSE

/proc/make_tracker_effects(tr_source, tr_destination, var/tr_number = 10, var/custom_icon_state = "soul", var/number_of_icons = 3, var/tr_type = /obj/effect/tracker/soul, var/force_size)
spawn()
var/list/possible_icons = list()
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1644,7 +1644,7 @@ var/global/objects_thrown_when_explode = FALSE
usr.put_in_hand(OI.hand_index, src)
add_fingerprint(usr)

/obj/item/proc/pre_throw(atom/movable/target)
/obj/item/proc/pre_throw(var/atom/movable/target,var/mob/living/user)
return

/obj/item/proc/recharger_process(var/obj/machinery/recharger/charger)
Expand Down
2 changes: 2 additions & 0 deletions code/game/objects/items/stacks/sheets/mineral.dm
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,8 @@ var/list/datum/stack_recipe/silver_recipes = list ( \
new/datum/stack_recipe/dorf("chain", /obj/item/stack/chains, 2, 1, 20, 5, inherit_material = TRUE),
null,
blacksmithing_recipes,
null,
new/datum/stack_recipe/blacksmithing("battle cross", /obj/item/weapon/boomerang/cross, 16, time = 8 SECONDS, required_strikes = 20),
)

/obj/item/stack/sheet/mineral/silver/New(var/loc, var/amount=null)
Expand Down
Loading