Skip to content
This repository has been archived by the owner on Oct 15, 2023. It is now read-only.

Commit

Permalink
Merge branch 'master' of https://github.com/ss220club/Paradise
Browse files Browse the repository at this point in the history
  • Loading branch information
Furrior committed Aug 17, 2023
2 parents 48d5bb6 + c203b52 commit 7f77e04
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 42 deletions.
3 changes: 3 additions & 0 deletions code/datums/spells/conjure_item.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
if(C.drop_from_active_hand())
item = new item_type
C.put_in_hands(item)
else //для обхода бага от рефактора Цвея который он починил другим рефактором которого здесь нет
item = new item_type
C.put_in_hands(item)

/obj/effect/proc_holder/spell/targeted/conjure_item/Destroy()
QDEL_NULL(item)
Expand Down
21 changes: 4 additions & 17 deletions code/datums/spells/devil.dm
Original file line number Diff line number Diff line change
Expand Up @@ -102,26 +102,13 @@
/obj/effect/proc_holder/spell/targeted/infernal_jaunt/cast(list/targets, mob/living/user = usr)
if(istype(user))
if(istype(user.loc, /obj/effect/dummy/slaughter))
var/continuing = 0
if(istype(get_area(user), /area/shuttle)) // Can always phase in in a shuttle.
continuing = TRUE
else
for(var/mob/living/C in orange(2, get_turf(user.loc))) //Can also phase in when nearby a potential buyer.
if (C.mind && C.mind.soulOwner == C.mind)
continuing = TRUE
break
if(continuing)
to_chat(user,"<span class='warning'>You are now phasing in.</span>")
if(do_mob(user,user,150))
user.infernalphasein()
else
to_chat(user,"<span class='warning'>You can only re-appear near a potential signer or on a shuttle.</span>")
revert_cast()
return ..()
to_chat(user,"<span class='warning'>You are now phasing in.</span>")
if(do_mob(user,user,100))
user.infernalphasein()
else
user.fakefire()
to_chat(user,"<span class='warning'>You begin to phase back into sinful flames.</span>")
if(do_mob(user,user,150))
if(do_mob(user,user,100))
user.notransform = TRUE
user.infernalphaseout()
else
Expand Down
6 changes: 6 additions & 0 deletions code/game/gamemodes/devil/devil_game_mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
var/num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual.
var/objective_count = 2
var/minimum_devils = 1
var/blood_threshold = 2
var/true_form_threshold = 4
var/arch_demon_threshold = 6
// var/devil_scale_coefficient = 10

/datum/game_mode/devil/announce()
Expand Down Expand Up @@ -51,6 +54,9 @@


/datum/game_mode/devil/post_setup()
blood_threshold = round(num_players() / 10)
true_form_threshold = round(num_players() / 6)
arch_demon_threshold = round(num_players() / 4)
for(var/datum/mind/devil in devils)
spawn(rand(10, 100))
finalize_devil(devil, TRUE)
Expand Down
60 changes: 36 additions & 24 deletions code/game/gamemodes/devil/devilinfo.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#define BLOOD_THRESHOLD 3 //How many souls are needed per stage.
/* #define BLOOD_THRESHOLD 3 //How many souls are needed per stage.
#define TRUE_THRESHOLD 7
#define ARCH_THRESHOLD 12
disabled defines for progresssing by justpaper and mrachnuy ask*/

#define BASIC_DEVIL 0
#define BLOOD_LIZARD 1
Expand Down Expand Up @@ -96,6 +97,9 @@ GLOBAL_LIST_INIT(lawlorify, list (
/obj/effect/proc_holder/spell/targeted/conjure_item/violin,
/obj/effect/proc_holder/spell/targeted/summon_dancefloor)
var/ascendable = FALSE
var/blood_threshold = null
var/true_form_threshold = null
var/arch_demon_threshold = null

/datum/devilinfo/New()
..()
Expand All @@ -108,6 +112,15 @@ GLOBAL_LIST_INIT(lawlorify, list (
devil.obligation = randomdevilobligation()
devil.ban = randomdevilban()
devil.banish = randomdevilbanish()
var/datum/game_mode/devil/devil_mode
if(SSticker.mode == devil_mode)
devil.blood_threshold = devil_mode.blood_threshold
devil.true_form_threshold = devil_mode.true_form_threshold
devil.arch_demon_threshold = devil_mode.arch_demon_threshold
else
devil.blood_threshold = round(GLOB.player_list.len / 10)
devil.true_form_threshold = round(GLOB.player_list.len / 6)
devil.arch_demon_threshold = round(GLOB.player_list.len / 4)
return devil

/proc/devilInfo(name, saveDetails = 0)
Expand Down Expand Up @@ -165,21 +178,20 @@ GLOBAL_LIST_INIT(lawlorify, list (
owner.current.set_nutrition(NUTRITION_LEVEL_FULL)
to_chat(owner.current, "<span class='warning'>You feel satiated as you received a new soul.</span>")
update_hud()
switch(SOULVALUE)
if(0)
to_chat(owner.current, "<span class='warning'>Your hellish powers have been restored.</span>")
give_base_spells()
if(BLOOD_THRESHOLD)
to_chat(owner.current, "<span class='warning'>You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard.</span>")
sleep(50)
increase_blood_lizard()
if(TRUE_THRESHOLD)
to_chat(owner.current, "<span class='warning'>You feel as though your current form is about to shed. You will soon turn into a true devil.</span>")
sleep(50)
increase_true_devil()
if(ARCH_THRESHOLD)
arch_devil_prelude()
increase_arch_devil()
if(SOULVALUE == 0 )
to_chat(owner.current, "<span class='warning'>Your hellish powers have been restored.</span>")
give_base_spells()
if(SOULVALUE == blood_threshold )
to_chat(owner.current, "<span class='warning'>You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard.</span>")
sleep(50)
increase_blood_lizard()
if(SOULVALUE == true_form_threshold)
to_chat(owner.current, "<span class='warning'>You feel as though your current form is about to shed. You will soon turn into a true devil.</span>")
sleep(50)
increase_true_devil()
if(SOULVALUE == arch_demon_threshold)
arch_devil_prelude()
increase_arch_devil()

/datum/devilinfo/proc/remove_soul(datum/mind/soul)
if(soulsOwned.Remove(soul))
Expand All @@ -191,9 +203,9 @@ GLOBAL_LIST_INIT(lawlorify, list (
if(form == ARCH_DEVIL)
return //arch devil can't regress
//Yes, fallthrough behavior is intended, so I can't use a switch statement.
if(form == TRUE_DEVIL && SOULVALUE < TRUE_THRESHOLD)
if(form == TRUE_DEVIL && SOULVALUE < true_form_threshold)
regress_blood_lizard()
if(form == BLOOD_LIZARD && SOULVALUE < BLOOD_THRESHOLD)
if(form == BLOOD_LIZARD && SOULVALUE < blood_threshold)
regress_humanoid()
if(SOULVALUE < 0)
remove_spells()
Expand Down Expand Up @@ -428,7 +440,7 @@ GLOBAL_LIST_INIT(lawlorify, list (

/datum/devilinfo/proc/hellish_resurrection(mob/living/body)
message_admins("[owner.name] (true name is: [truename]) is resurrecting using hellish energy.</a>")
if(SOULVALUE <= ARCH_THRESHOLD && ascendable) // once ascended, arch devils do not go down in power by any means.
if(SOULVALUE <= arch_demon_threshold && ascendable) // once ascended, arch devils do not go down in power by any means.
reviveNumber += LOSS_PER_DEATH
update_hud()
if(!QDELETED(body))
Expand Down Expand Up @@ -489,11 +501,11 @@ GLOBAL_LIST_INIT(lawlorify, list (

H.equipOutfit(/datum/outfit/devil_lawyer)
give_base_spells(TRUE)
if(SOULVALUE >= BLOOD_THRESHOLD)
if(SOULVALUE >= blood_threshold)
increase_blood_lizard()
if(SOULVALUE >= TRUE_THRESHOLD) //Yes, BOTH this and the above if statement are to run if soulpower is high enough.
if(SOULVALUE >= true_form_threshold) //Yes, BOTH this and the above if statement are to run if soulpower is high enough.
increase_true_devil()
if(SOULVALUE >= ARCH_THRESHOLD && ascendable)
if(SOULVALUE >= arch_demon_threshold && ascendable)
increase_arch_devil()
else
throw EXCEPTION("Unable to find a blobstart landmark for hellish resurrection")
Expand All @@ -518,9 +530,9 @@ GLOBAL_LIST_INIT(lawlorify, list (
to_chat(owner, "<br/><br/><span class='warning'>Remember, the crew can research your weaknesses if they find out your devil name.</span><br>")


#undef BLOOD_THRESHOLD
/* #undef BLOOD_THRESHOLD
#undef TRUE_THRESHOLD
#undef ARCH_THRESHOLD
#undef ARCH_THRESHOLD */
#undef BASIC_DEVIL
#undef BLOOD_LIZARD
#undef TRUE_DEVIL
Expand Down
2 changes: 1 addition & 1 deletion code/modules/projectiles/projectile/magic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
/obj/item/projectile/magic/fireball/infernal
name = "infernal fireball"
exp_heavy = -1
exp_light = -1
exp_light = 3
exp_flash = 4
exp_fire= 5

Expand Down

0 comments on commit 7f77e04

Please sign in to comment.