Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add: ASHIE UPDATE #5875

Merged
merged 109 commits into from
Nov 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
83966df
Create ritual_object.dm
Antoonij Sep 8, 2024
899073c
chop chop
Antoonij Sep 8, 2024
030a365
meow.
Antoonij Sep 8, 2024
90e4856
paradise.dme
Antoonij Sep 8, 2024
8689195
new feat
Antoonij Sep 8, 2024
482af5e
Cooldown integration
Antoonij Sep 8, 2024
509b35d
separated
Antoonij Sep 8, 2024
86f7dfe
все же компонент.
Antoonij Sep 8, 2024
dd77f25
Pre-defined rituals list and new component
Antoonij Sep 8, 2024
345fa7e
Rename ritual_object.dm to rituals.dm
Antoonij Sep 8, 2024
28b610c
have you seen that cat?
Antoonij Sep 8, 2024
4a6c97a
теперь дело идет.
Antoonij Sep 8, 2024
57541e2
trailing
Antoonij Sep 8, 2024
f375ca2
ffs and again, i forgor.
Antoonij Sep 8, 2024
06a3dd8
oaoao эта што ООП?
Antoonij Sep 9, 2024
e19d30b
byvaet
Antoonij Sep 9, 2024
f0ef873
mgm
Antoonij Sep 9, 2024
9b4dc72
i'll try it
Antoonij Sep 9, 2024
1a40c76
we'll init it in new okay
Antoonij Sep 9, 2024
f9455e6
allowed categories/disaster addition
Antoonij Sep 9, 2024
bcfcdfa
forgor
Antoonij Sep 9, 2024
431b854
required items addition
Antoonij Sep 9, 2024
b263ba3
first ritual yosssssss
Antoonij Sep 9, 2024
591462b
i mean it's allright like
Antoonij Sep 9, 2024
783ee64
inconsistent identitation. watafaa
Antoonij Sep 9, 2024
a38c696
надо радоваться.. не надо напрягаться
Antoonij Sep 9, 2024
c51b9ba
А впрынцыпе можно и так clueless
Antoonij Sep 9, 2024
4ea3556
again
Antoonij Sep 9, 2024
607d2dc
ffs
Antoonij Sep 9, 2024
d211d96
йее, перетабуляция
Antoonij Sep 9, 2024
5dbb9c3
perepisal
Antoonij Sep 9, 2024
7e8e62a
Mind transfer ritual
Antoonij Sep 10, 2024
99246f5
fastfix
Antoonij Sep 10, 2024
824ddab
critical bugfixek
Antoonij Sep 10, 2024
bcc7cc6
summoning pepe
Antoonij Sep 12, 2024
5608860
mmm
Antoonij Sep 12, 2024
95b737c
on ne vidit type roflcat
Antoonij Sep 12, 2024
84121c3
UPD
Antoonij Sep 13, 2024
8b771e8
mgm
Antoonij Sep 13, 2024
2e60ea5
UPD x2
Antoonij Sep 13, 2024
3ac945c
forgor
Antoonij Sep 13, 2024
e969d04
bugfix
Antoonij Sep 13, 2024
02d907a
UPD
Antoonij Sep 13, 2024
6b3699e
UPD
Antoonij Sep 14, 2024
613a8de
shitcode cleaning + UPD
Antoonij Sep 14, 2024
ab511a2
trailing
Antoonij Sep 14, 2024
b69ecdf
balance
Antoonij Sep 14, 2024
a0553bf
UPD
Antoonij Sep 14, 2024
6ab8595
fastfix
Antoonij Sep 14, 2024
c0b5d49
population ritual bugfix
Antoonij Sep 14, 2024
ef475e2
UPD
Antoonij Sep 15, 2024
c6fab1e
trailing
Antoonij Sep 15, 2024
54eb76d
fastfix
Antoonij Sep 15, 2024
3b9b260
trailing again wtf
Antoonij Sep 15, 2024
d92dc14
UPD
Antoonij Sep 15, 2024
eda0794
UPD.
Antoonij Sep 15, 2024
96f978d
fix
Antoonij Sep 15, 2024
d8877b4
again castsummon.ogg fix
Antoonij Sep 15, 2024
505dfae
improve
Antoonij Sep 15, 2024
2f3c8c5
some improve
Antoonij Sep 16, 2024
2165d10
New ritual + some improvement
Antoonij Sep 16, 2024
00cc49a
sound
Antoonij Sep 16, 2024
ccc82b1
shitreturns removal
Antoonij Sep 16, 2024
7505a8c
and again sound
Antoonij Sep 16, 2024
35711aa
UPD
Antoonij Sep 17, 2024
6eb2deb
fastfix
Antoonij Sep 17, 2024
2ccc205
UPD + bugfix
Antoonij Sep 17, 2024
4f715a6
fastfix
Antoonij Sep 17, 2024
778f138
The last UPD (i hope)
Antoonij Sep 17, 2024
291ae8e
finally and new defines
Antoonij Sep 17, 2024
3860530
paradise.dme
Antoonij Sep 17, 2024
8110dc9
whoops
Antoonij Sep 17, 2024
27f882f
ASHIE UPDATE!!!??? нет, пока что часть
Antoonij Sep 18, 2024
e043524
fastfix
Antoonij Sep 18, 2024
198855e
trophy sprites
Antoonij Sep 18, 2024
201b1cf
trophy sprites UPD
Antoonij Sep 18, 2024
110738c
crafts+upd
Antoonij Sep 18, 2024
b80b334
fastfix
Antoonij Sep 18, 2024
3268359
fastfix x2
Antoonij Sep 18, 2024
16c8351
вот это я затупил, да....
Antoonij Sep 18, 2024
12d86b5
OOP things
Antoonij Sep 20, 2024
e4163e9
великий апдейт читаемости
Antoonij Sep 22, 2024
2cf7f47
фиксеки
Antoonij Sep 22, 2024
6d1acf6
fixes nr2
Antoonij Sep 22, 2024
511b404
some more improve
Antoonij Sep 22, 2024
affc484
to_chat fixes
Antoonij Sep 22, 2024
2183be6
forgotten things nr1
Antoonij Sep 22, 2024
7fc44f1
some fixes
Antoonij Sep 23, 2024
5a28145
mor codestyle
Antoonij Sep 23, 2024
8514cca
forgotten and important thing
Antoonij Sep 23, 2024
734da49
Merge branch 'master220' into yos-ashwalker-rituals
Antoonij Sep 27, 2024
5606698
Ultimate rework to attack_hand from attackedby
Antoonij Oct 1, 2024
48ae96f
the last fix
Antoonij Oct 5, 2024
bb4d3d5
one missed moment
Antoonij Oct 5, 2024
d87777f
fix do_after on invokers/invoker
Antoonij Oct 5, 2024
5629bc1
ой
Antoonij Oct 5, 2024
6261af9
bugfixes for rituals
Antoonij Oct 5, 2024
0328cf9
add ashwalker rune sprite
Antoonij Oct 6, 2024
4ce1966
add rune to map
Antoonij Oct 6, 2024
408cb88
bright back deleted stone block roflcat
Antoonij Oct 6, 2024
aaae717
bugfixes
Antoonij Oct 8, 2024
ee22b75
Crusher loot corrections
Antoonij Oct 9, 2024
fcc524c
Merge branch 'master220' into yos-ashwalker-rituals
Antoonij Oct 9, 2024
1db2862
mapdiff fix
Antoonij Oct 10, 2024
1342db1
fastfix trophy... again...
Antoonij Oct 14, 2024
bc9c533
make it look better
Antoonij Oct 14, 2024
0e93f51
fixed mindswap
Antoonij Oct 16, 2024
1771a54
UPD: https://discord.com/channels/617003227182792704/7551253340971336…
Antoonij Oct 22, 2024
46ffda3
some smol fixes
Antoonij Oct 22, 2024
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
Original file line number Diff line number Diff line change
Expand Up @@ -1402,6 +1402,14 @@
},
/turf/simulated/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"qj" = (
/obj/structure/stone_tile/cracked{
dir = 4
},
/obj/effect/mapping_helpers/no_lava,
/obj/effect/decal/cleanable/ashrune,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"zz" = (
/obj/effect/mapping_helpers/no_lava,
/obj/structure/stone_tile{
Expand Down Expand Up @@ -1606,7 +1614,7 @@ ak
ak
cg
cb
cg
qj
cn
bL
dr
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@
#define isskeleton(A) (is_species(A, /datum/species/skeleton))
#define ishumanbasic(A) (is_species(A, /datum/species/human))
#define isunathi(A) (is_species(A, /datum/species/unathi))
#define isashwalker(A) (is_species(A, /datum/species/unathi/ashwalker))
#define isashwalkershaman(A) (is_species(A, /datum/species/unathi/ashwalker/shaman))
#define istajaran(A) (is_species(A, /datum/species/tajaran))
#define isvulpkanin(A) (is_species(A, /datum/species/vulpkanin))
#define isskrell(A) (is_species(A, /datum/species/skrell))
Expand Down
18 changes: 18 additions & 0 deletions code/__DEFINES/rituals.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/// Used in ritual variables
#define DEFAULT_RITUAL_RANGE_FIND 1
#define DEFAULT_RITUAL_COOLDOWN (100 SECONDS)
#define DEFAULT_RITUAL_DISASTER_PROB 10
#define DEFAULT_RITUAL_FAIL_PROB 10
/// Ritual object bitflags
#define RITUAL_STARTED (1<<0)
#define RITUAL_ENDED (1<<1)
#define RITUAL_FAILED (1<<2)
/// Ritual datum bitflags
#define RITUAL_SUCCESSFUL (1<<0)
/// Invocation checks, should not be used in extra checks.
#define RITUAL_FAILED_INVALID_SPECIES (1<<1)
#define RITUAL_FAILED_EXTRA_INVOKERS (1<<2)
#define RITUAL_FAILED_MISSED_REQUIREMENTS (1<<3)
#define RITUAL_FAILED_ON_PROCEED (1<<4)
#define RITUAL_FAILED_INVALID_SPECIAL_ROLE (1<<5)

2 changes: 2 additions & 0 deletions code/__DEFINES/status_effects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@

#define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage

#define STATUS_EFFECT_FANG_EXHAUSTION /datum/status_effect/fang_exhaust // called by poison fang (crusher trophy)

#define STATUS_EFFECT_SAWBLEED /datum/status_effect/saw_bleed //if the bleed builds up enough, takes a ton of damage

#define STATUS_EFFECT_BLOODLETTING /datum/status_effect/saw_bleed/bloodletting //nerfed version
Expand Down
2 changes: 2 additions & 0 deletions code/__HELPERS/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,7 @@
prize_list["Miscellaneous"] = list(
EQUIPMENT("Absinthe", /obj/item/reagent_containers/food/drinks/bottle/absinthe/premium, 500),
EQUIPMENT("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300),
EQUIPMENT("Richard & Co cigarettes", /obj/item/storage/fancy/cigarettes/cigpack_richard, 400),
EQUIPMENT("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 300),
EQUIPMENT("GAR Meson Scanners", /obj/item/clothing/glasses/meson/gar, 800),
EQUIPMENT("GPS upgrade", /obj/item/gpsupgrade, 1500),
Expand Down Expand Up @@ -342,6 +343,7 @@
EQUIPMENT("Absinthe", /obj/item/reagent_containers/food/drinks/bottle/absinthe/premium, 250),
EQUIPMENT("Cigarettes", /obj/item/storage/fancy/cigarettes, 100),
EQUIPMENT("Medical Marijuana", /obj/item/storage/fancy/cigarettes/cigpack_med, 250),
EQUIPMENT("Richard & Co cigarettes", /obj/item/storage/fancy/cigarettes/cigpack_richard, 400),
EQUIPMENT("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150),
EQUIPMENT("Box of matches", /obj/item/storage/box/matches, 50),
EQUIPMENT("Cheeseburger", /obj/item/reagent_containers/food/snacks/cheeseburger, 150),
Expand Down
119 changes: 119 additions & 0 deletions code/datums/components/ritual_object.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
/datum/component/ritual_object
/// Pre-defined rituals list
var/list/rituals = list()
/// We define rituals from this.
var/list/allowed_categories
/// Required species to activate ritual object
var/list/allowed_species
/// Required special role to activate ritual object
var/list/allowed_special_role
/// Prevents from multiple uses
var/active_ui = FALSE

/datum/component/ritual_object/Initialize(
allowed_categories = /datum/ritual,
list/allowed_species,
list/allowed_special_role
)

if(!isobj(parent))
return COMPONENT_INCOMPATIBLE

src.allowed_categories = allowed_categories
src.allowed_species = allowed_species
src.allowed_special_role = allowed_special_role
get_rituals()

/datum/component/ritual_object/RegisterWithParent()
RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(attackby))

/datum/component/ritual_object/UnregisterFromParent()
UnregisterSignal(parent, COMSIG_ATOM_ATTACK_HAND)

/datum/component/ritual_object/proc/get_rituals() // We'll get all rituals for flexibility.
LAZYCLEARLIST(rituals)

for(var/datum/ritual/ritual as anything in typecacheof(allowed_categories))
if(!ritual.name)
continue

rituals += new ritual

for(var/datum/ritual/ritual as anything in rituals)
ritual.ritual_object = parent

return

/datum/component/ritual_object/Destroy(force)
LAZYNULL(rituals)
return ..()

/datum/component/ritual_object/proc/attackby(datum/source, mob/user)
SIGNAL_HANDLER

if(active_ui)
return

if(!ishuman(user))
return

var/mob/living/carbon/human/human = user

if(allowed_species && !is_type_in_list(human.dna.species, allowed_species))
return

if(allowed_special_role && !is_type_in_list(human.mind?.special_role, allowed_special_role))
return

active_ui = TRUE
INVOKE_ASYNC(src, PROC_REF(open_ritual_ui), human)

return COMPONENT_CANCEL_ATTACK_CHAIN

/datum/component/ritual_object/proc/open_ritual_ui(mob/living/carbon/human/human)
var/list/rituals_list = get_available_rituals(human)

if(!LAZYLEN(rituals_list))
active_ui = FALSE
to_chat(human, "Не имеется доступных для выполнения ритуалов.")
return

var/choosen_ritual = tgui_input_list(human, "Выберите ритуал", "Ритуалы", rituals_list)

if(!choosen_ritual)
active_ui = FALSE
return

var/ritual_status

for(var/datum/ritual/ritual as anything in rituals)
if(choosen_ritual != ritual.name)
continue

ritual_status = ritual.pre_ritual_check(human)
break

if(ritual_status)
active_ui = FALSE

return FALSE

/datum/component/ritual_object/proc/get_available_rituals(mob/living/carbon/human/human)
var/list/rituals_list = list()

for(var/datum/ritual/ritual as anything in rituals)
if(ritual.charges == 0)
continue

if(!COOLDOWN_FINISHED(ritual, ritual_cooldown))
continue

if(ritual.allowed_species && !is_type_in_list(human.dna.species, ritual.allowed_species))
continue

if(ritual.allowed_special_role && !is_type_in_list(human.mind?.special_role, ritual.allowed_special_role))
continue

LAZYADD(rituals_list, ritual.name)

return rituals_list
Loading