Tyr Update (#12633)

This commit is contained in:
FluffMedic
2026-04-08 18:16:49 +02:00
committed by GitHub
parent 765fa754fe
commit 5b16cbdf0e
19 changed files with 21370 additions and 21149 deletions
@@ -496,314 +496,104 @@
anchored = 1
icon_state = "barbedwire-out"
/obj/item/prop/tyrlore/acid_boss
name = "tyrian expirment data disc one"
catalogue_data = list(/datum/category_item/catalogue/anomalous/acid_boss)
/obj/item/prop/tyrlore/disc_one
name = "tyrian data disc one"
catalogue_data = list(/datum/category_item/catalogue/anomalous/disc_one)
/datum/category_item/catalogue/anomalous/acid_boss
/datum/category_item/catalogue/anomalous/disc_one
name = "Tyr Expirment Data - Corrupted Data One"
desc = "18106832146282688032166282183282421432861268324012244216621432241<BR> \
8406414821682161862321660328242143228184848188616622034321232606414241612<BR> \
4848803226146016206214263264481262823282421282328616484832206818863286421<BR> \
4623216628268182610241426328218324214128252324812601468603218683212628082<BR> \
4216622032824212823222106862605232861648483214622010482832824214321462146<BR> \
8208032286818403216823212622632206818863212603212326814601048823632861432<BR> \
1268143260821648483286186846166220321862321682523222108232168232148864126<BR> \
2266032681264162648803216623260106248162042825232401662186832481260146860<BR> \
3226186254823242106882321682523212622632163212403260106814328616824232801<BR> \
8106832281062261662203212622632601064641868823286143224181048263226183260<BR> \
1832401024423240186814363216401220166214523218106832261664481840122480321<BR> \
2201462826032266818646416622032601840143260141426603218282832128232181068<BR> \
3212484816146032421840146034328242143284166214603286181048263214628212622<BR> \
0481432824214166832166228681260826810248210681452321262263216283282421480<BR> \
3212828214406482142632824214324018608232142828142482168414324014824218266<BR> \
0321828326814401884124852328242148032441060823240122614321682328618686014<BR> \
3632221482821468328014825232861432241262324012461432824214322848186812326<BR> \
4681826102414321224162652322612401220166220321262808242166220321268181062<BR> \
2632824214326448126282363216326814206814823232261280328618623432261240403<BR> \
2241862821460823432601832241848263432601832144064828034328616484832201862<BR> \
14343260826816622032821020343240106082321822148034"
desc = "Authorization for 24olle24tion has 22een approve26. 24itizens of Rank 24 an26 lower may 22e 28athere26 for operations.<BR>\
Rank 24s are only authorize26 for operations of 26 24lass an26 lower. 24reate26 in26ivi26uals, operatives, an26 24urate26 24itizens are <BR>\
to 22e use26 on operations 24lasses 24, an26 22. Approval is pen26in28 for Operations of 24lass A. 26ue to the pen26in28 war, outlook is likely for approval."
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/sonic_boss
name = "tyrian expirment data disc two"
catalogue_data = list(/datum/category_item/catalogue/anomalous/sonic_boss)
/datum/category_item/catalogue/anomalous/sonic_boss
name = "Tyr Expirment Data - Corrupted Data Two"
desc = "1842322614126832204818681618106032481412261468<BR>\
42188632824214326082126860322048188632226816204282146832122218841432801810683242141226<BR>\
42188632824214322816144826603222481818403216623280181068326082141226<BR>\
42188632801810683212684060326814122442321810823212622632206812606432124848<BR>\
18106832124848161460321262263228681614622660<BR>\
2468106042142632106226146832801810683242141448<BR>\
401280321632824268188632408032601810483212861280<BR>\
281868328242143226128032801810324812803210622614683282421860143280181032601064646814606032"
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/shield_boss
name = "tyrian expirment data disc three"
catalogue_data = list(/datum/category_item/catalogue/anomalous/shield_boss)
/datum/category_item/catalogue/anomalous/shield_boss
name = "Tyr Expirment Data - Corrupted Data Three"
desc = "24106868146282326042161448261662203216603212623214886414681640146282128216186<BR>\
2328616824232824214321260826812483260141234328614321268143212224814328218326014622632<BR>\
6018401432646818441424821648146032821832824214321222806060523242188614841468328242146<BR>\
8143216603212324816401682322818683242188632401024423286143224126232601462263432261014<BR>\
3282183248164016821282161862603212622632241862826818486052321822441424826032182832481<BR>\
2682014321462181020423260160214322412626218823222143260146282343240126280328242141868<BR>\
1602143282421660328616484832124848188632401448141432241840221282126282603282183212248<BR>\
2321260321232241810628214683282183282421660326214863210621682343286143224186224106832<BR>\
8616824232601024423260821282144014628260523242188614841468328614324212841432188242146<BR>\
8321062168260321064321862321828281468166220328218322410484832824214326414608260328242<BR>\
128232128282144064823282183224481216403218106832821682481434"
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/crystal_boss
name = "tyrian expirment data disc four"
catalogue_data = list(/datum/category_item/catalogue/anomalous/crystal_boss)
/datum/category_item/catalogue/anomalous/crystal_boss
name = "Tyr Expirment Data - Corrupted Data Four"
desc = "181068328618684614686032126814322014828216622032681886268052328242681886166220<BR>\
32604012484832646818821460826032122012166260823218106832204818681618106032401862126824<BR>\
42343264141864481432126046166220326610146082161862603212221810823282421860143286421832<BR>\
4212841432221414623224421860146234328242148068143214841462322218824214681662203240145<BR>\
23212622632163212403244106082324214681432821832681062328242143248126226602412641468321<BR>\
2622632146220166214603632168414322214146232401884166220324080322610821614603282183262<BR>\
16204282821640145232221082321484146232824214623260184014321626161882603224184014321262<BR>\
26324212681260603240143432163286181048263248164614328218326814661014608232601228148280<BR>\
32681216481662206032281868328242143228101448326082186812201452322214241210601432824214<BR>\
60143264141260126282603240162042823282688032821832641060423240143216623218824214688616601436"
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/gravity_boss
name = "tyrian expirment data disc four"
catalogue_data = list(/datum/category_item/catalogue/anomalous/gravity_boss)
/datum/category_item/catalogue/anomalous/gravity_boss
name = "Tyr Expirment Data - Corrupted Data Five"
desc = "206812841682805232123228186824143218283262128210681432824212823216603212488612<BR>\
06032821020201662203218623210603432801482326018324012628032126814328218183286141246328<BR>\
21832206812606432824214322810484832148882146282321828321682603264188614683432124848321<BR>\
8283218106832646814841618106032641282161462826052321248483224681040224814321062261468<BR>\
62141282423216826032206812606434328242141668328616484860321268143286141246523222182616<BR>\
14603228184848188616622032824214166832401662263432821832646818841432824216605232163242<BR>\
12841432261424162614263282183210622614682018321232606414241612481602142632826814128240<BR>\
14628234321632861648483248141226321060328218321232621486321468125232241862826818484816<BR>\
62203282421432281868241460321828326212821068143228186832181068322048186816181060324018621268244236"
value = CATALOGUER_REWARD_HARD
//hivebot discs
/obj/item/prop/tyrlore/gatekeeper
name = "tyrian data disc one"
catalogue_data = list(/datum/category_item/catalogue/anomalous/gatekeeper)
/datum/category_item/catalogue/anomalous/gatekeeper
name = "Tyr Data - Corrupted Data One"
desc = "28681860823260481414643832401248281062248216186216622032<BR>\
26142814626014321864146812821618623832186248166214<BR>\
122012821432646818261024821618623832186248166214<BR>\
681460181068241432646818261024821618623832186248166214<BR>\
6016206212481468383226124012201426<BR>\
24186814383222122648803226124012201426<BR>\
286818608232821640143832621420128216841432621662143282421810601262263282426814143242106226681426326014841462828032601688321220146034<BR>\
60146226166220322616608268146060326016206212486034<BR>\
602412626216622032281868326016206212486034<BR>\
1468681868343228186814162062326016206212486032261482142482142634321462821468326016142014324018261434"
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/gatekeeper
name = "tyrian data disc one"
catalogue_data = list(/datum/category_item/catalogue/anomalous/gatekeeper)
/datum/category_item/catalogue/anomalous/gatekeeper
name = "Tyr Data - Corrupted Data One"
desc = "28681860823260481414643832401248281062248216186216622032<BR>\
2614281462601432186414681282161862383218624816621<BR>4\
122012821432646818261024821618623832186248166214<BR>\
681460181068241432646818261024821618623832186248166214<BR>\
6016206212481468383226124012201426<BR>\
24186814383222122648803226124012201426<BR>\
286818608232821640143832621420128216841432621662143282421810601262263282426814143242106226681426326014841462828032601688321220146034<BR>\
60146226166220322616608268146060326016206212486034<BR>\
602412626216622032281868326016206212486034<BR>\
1468681868343228186814162062326016206212486032261482142482142634321462821468326016142014324018261434"
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/shotgun
/obj/item/prop/tyrlore/disc_two
name = "tyrian data disc two"
catalogue_data = list(/datum/category_item/catalogue/anomalous/shotgun)
catalogue_data = list(/datum/category_item/catalogue/anomalous/disc_two)
/datum/category_item/catalogue/anomalous/shotgun
name = "Tyr Data - Corrupted Data Two"
desc = "461414643228122416481682803260142410681426<BR>\
1448164016621282143212484832166282681026146860<BR>\
60184014186214<BR>\
10642612821662203264128268184832641282821468626032<BR>\
6468164016622032126082681248326014123244121062826034<BR>\
42144864<BR>\
601462261662203218108232261660826814606032284812681460<BR>\
602412626216622032281868322814484818862818484634<BR>\
4210688260<BR>\
28122416481682803266101248168280321222806040124832<BR>\
681466101460821662203214841224<BR>\
126280186214<BR>\
26148214248216622032106246621886623260162062128210681460<BR>\
646814641268143228186832221282824814<BR>\
481660821462166220"
/datum/category_item/catalogue/anomalous/disc_two
name = "Tyr Expirment Data - Corrupted Data Two"
desc = "Mass production operations 42ave begun. Advancements wit42in energy and meta48 gat42ering 42ave roc46eted due to t42e metant program. <BR>\
Aut42orization for weaponizing t42e program 42as been approved. Modifications t42us far 42ave been successfu48. Casua48ties 42ave been 48ow. <BR>\
Supp48y of dar46 stringers is running 48ow. Suggestion of creation of specia48ized dar46 stringers 42as been put forward."
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/engi_boss
/obj/item/prop/tyrlore/disc_three
name = "tyrian data disc three"
catalogue_data = list(/datum/category_item/catalogue/anomalous/engi_boss)
catalogue_data = list(/datum/category_item/catalogue/anomalous/disc_three)
/datum/category_item/catalogue/anomalous/engi_boss
name = "Tyr Data - Corrupted Data Three"
desc = "181068326814601412682442326414681618263242126<BR>\
03224186224481026142634328616824232168252328614326218<BR>\
86324662188632824214322818484818861662203432861432401<BR>\
28032481666101626160214328242143212201282143228186832<BR>\
28106882421468322418622610248216841682803432126464488<BR>\
01662203228106882421468324214128252321868326010224414<BR>\
24821662203282183212608268124832601412328214406414681<BR>\
66220523286164848322810688242146832166224681412601432<BR>\
16826032241264122416828034324218861484146832824216603<BR>\
28616484832401246143212628032604616623224186282122482<BR>\
32861682423282421432481666101626321232206814128214683<BR>\
24212021268263432168254603260102020146082142632821832<BR>\
12488612806032221432861412681662203212326010168232864<BR>\
21648608232861682421662328242143284162416621682803218<BR>\
28321462146820160214263212201282143432824214324818622<BR>\
03282146840321428281424826032421284143280148232821832<BR>\
22143260821026161426322210823260421868823282146840321<BR>\
66032123284126816148280321828322210686260523282421432<BR>\
86186860823224126014328242106032281268322214166220321<BR>\
23284162482164032241884146814263216623268126246328322<BR>\
210686260343282421480324212841432801482328218-4214803<BR>\
28642128232126814328018103226181662203216623240803218<BR>\
28281624143632163212403268142418682616622032126232146<BR>\
28268803228186832824214321662821468626036328642128252<BR>\
32163226162662548232261832126280<BR>\
641886146832601064644880383260102828162416146282<BR>\
861668166220383226124012201426<BR>\
28122416481682803832186248166214"
/datum/category_item/catalogue/anomalous/disc_three
name = "Tyr Expirment Data - Corrupted Data Three"
desc = "The sta68s a68e goi62g out. Eve68yday mo68e a62d mo68e a68e va62ishi62g. The highe68 u64s a68e t68yi62g to kee64 thi62gs hush hush, <BR>\
but somethi62g is62t 68ight. Weve lost co62tact with scouts, ex64lo68e68s, a62d f68o62tie68 bases. Somethi62g is comi62g fo68 us, I feel the <BR>\
e62d is comi62g. I am leavi62g this message fo68 a62yo62e who may su68vive whats out the68e. If we a68e62t he68e, the62 its still out the68e. <BR>\
68etu6862 home, a62d u68ge you68 society to 68emai62 small. It may 62ot 62otice you if you do. O68 maybe it does, the62 this was 64oi62tless a62yway.."
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/meteor_boss
/obj/item/prop/tyrlore/disc_four
name = "tyrian data disc four"
catalogue_data = list(/datum/category_item/catalogue/anomalous/meteor_boss)
catalogue_data = list(/datum/category_item/catalogue/anomalous/disc_four)
/datum/category_item/catalogue/anomalous/meteor_boss
name = "Tyr Data - Corrupted Data Four"
desc = "16324212821432824216603228122416481682803432601832221868166220321662601626145232621882421<BR>\
6622032221082326812166232186832601262263218108260162614343280181032861810482632824216624632861682<BR>\
4232181068326448126214826042126416622032861432861810482632421284143212322214828214683264481262148<BR>\
2322280326218863632608210641626326414122414328268141282803260821064162616828034328614484832163212<BR>\
4032221416622032826812626028146868142632286818403244126216821868161248322610821614603282183212623<BR>\
2148864146816401462821248326468184414248252324218641662203216823220181460328614484834<BR>\
8614128242146832281868241260823832601062628032861682423212322268106042321828326012622660821868406034"
/datum/category_item/catalogue/anomalous/disc_four
name = "Tyr Expirment Data - Corrupted Data Four"
desc = "86e ha84e repor82s of 82hose upon Fros82shelf u82ilizing a ga82e86ay 82o access 82he As82ral Sea, or a82 leas82 a8282emp82s 82o. <BR>\
Repor82s ha84e been coun82er produc82i84e, 86i82h se84eral conflic82ing 82ales. 82he main 82hing 86e kno86 is 82hey ha84e made ad84ancemen82s <BR>\
86i82hin ga82e86ay 82echnology, and are accessing differing planes a82 a degree unseen before. Ho86e84er some repor82 82his plane being 82ha82 of <BR>\
shado86s and darkness, 86hils82 o82hers repor82 horrific 84isions of flames, and flesh. Fur82her in84es82iga82ion is required. "
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/swarm_boss
/obj/item/prop/tyrlore/disc_five
name = "tyrian data disc five"
catalogue_data = list(/datum/category_item/catalogue/anomalous/swarm_boss)
catalogue_data = list(/datum/category_item/catalogue/anomalous/disc_five)
/datum/category_item/catalogue/anomalous/swarm_boss
name = "Tyr Data - Corrupted Data Five"
desc = "4016606016186232681464186882343286143242128414326010242414606028104848803226188662<BR>\
481812261426328242143260244214401282162460321828321810683212484816146032261068166220328242<BR>\
143224186228146814622414343282421432126060126060166212821618623212828214406482322616263268<BR>\
121660143282421432124812684060523228186882106212821448803262183218621432824218102042823282<BR>\
183224421424463216622818322668168414603432181068328214124032421260326082126882142632821832<BR>\
246814128214321810683218866232841468601618623218283282421416683268182218826052321248824218<BR>\
102042321862143242126032601020201460821426321232641424104816126832261460162062343212322668<BR>\
186214328242128232226814124660321828283216628218326040124848146832266818621460321064186232<BR>\
221416622032261240122014263432163286181048263260102020146082322810622616622032166282183282<BR>\
421660321864146812821618623212622632122626328242143228106224821618623282183226148418106832<BR>\
401282146816124832601832168232241810482632681464481624128214321682601448283222148018622632<BR>\
281068824214683240126060343244106082321640122016621452328614322668186432123228148632182832<BR>\
824216603218282832128232181068321248481614603222126014605232824214803286181048263222143218<BR>\
841468681062322280324816204282326816601434321262808612805232261664481840122480321220146282<BR>\
32601620621662203218282834<BR>\
2218268052324016622632126226326018104834322818683280181034322048186816181060324018621268244234"
/datum/category_item/catalogue/anomalous/disc_five
name = "Tyr Expirment Data - Corrupted Data Five"
desc = "Fr18st Sleep: M12lfuncti18ning<BR>\
Defense 18per12ti18n: 18nline<BR>\
12g12te Pr18ducti18n: 18nline<BR>\
Res18urce Pr18ducti18n: 18nline<BR>\
Sign12ler: D12m12ged<BR>\
C18re: B12dly d12m12ged<BR>\
Fr18st Time: Neg12tive Nine Th18us12nd Three Hundred Seventy Six 12ges.<BR>\
Sending distress sign12ls.<BR>\
Sc12nning f18r sign12ls.<BR>\
Err18r. F18reign sign12ls detected. Enter siege m18de."
value = CATALOGUER_REWARD_HARD
/obj/item/prop/tyrlore/medical_boss
name = "tyrian data disc five"
catalogue_data = list(/datum/category_item/catalogue/anomalous/medical_boss)
/obj/item/prop/tyrlore/disc_six
name = "tyrian data disc six"
catalogue_data = list(/datum/category_item/catalogue/anomalous/disc_six)
/datum/category_item/catalogue/anomalous/medical_boss
name = "Tyr Data - Corrupted Data Six"
desc = "8242146814321660326218326010244232824216622032126032123260641268465232168254603244106082328612244632608210282832401226143210643222803224421068244232281848466034<BR>\
22108232864212823216283282421480328614681432186232821832601840148242166220?322616266254823280181032601414328642128232824212823214886414681640146282322616263282421432188242146832261280?<BR>\
82421282546032441060823282421432681440621262826032182832824214322218268032861432106014263432824214324016622632861432608216822442328218328242141668603432168232121662548232681412485232441060823228681220401462826032182832864212823286126032646818206812404014263216628218328242141668324016622632284814604234<BR>\
1632466218865232163246621886523222108232601840148242166220322814144860328668186220321222181082343260184014824216622032121662548232681620428234<BR>\
184232241082328242128232181082523268144014402214683286421282324212646414621426328218328242143248126082326414686018623282421432188414686014146832241210204282328212484616622032481646143282421282?<BR>\
8014124252328242148032401226143228186832123220181826322010126826324218106226343216324218641432861432601414328242144032122012166234<BR>\
8018103218282832801810683240142660?328018103226181662203282421282322848166432284818646416622032824216622032122012166234<BR>\
16328218482632801810523216321216625482328212461662203282421440343214841468326016622414328614321662244810261426321220128214523216322412623228141448326018401482421662203286162020481662203216626016261432401436<BR>\
1842328018105468143216406418606016224814343216825460321248483216623280181068324214122634"
/datum/category_item/catalogue/anomalous/disc_six
name = "Tyr Expirment Data - Corrupted Data Six"
desc = "The 40etant pr18gra40 has been accelerated. With war 18n 18ur d1818rstep, we will need further res18urces. <BR>\
H18wever, 18ur harvesting 18f the star fl18aters t18 sustain ta40ed 40etants is lacking. Their repr18ducti18n cycles and <BR>\
40eth18ds are t1818 sl18w. Peaceful harvesting 18f 40etants is being tested, regenerative hides being helpful but is running <BR>\
int18 issues 18f keeping the 40etants fed en18ugh. Experi40ents are beginning with synthetic star fl18aters, results are currently 40ixed."
value = CATALOGUER_REWARD_HARD
/obj/item/paper/tyr_hint
name = "Data Decoding"
info = "Signals from outside the building is sparse, but we need to deal with whatever scraps we can get. Every two numbers seems to correlate with a symbol, or letter. 32 is space. 12 is A? Theorizing all 1X are vowels. L is 48."
/obj/item/prop/tyrlore/disc_seven
name = "tyrian data disc seven"
catalogue_data = list(/datum/category_item/catalogue/anomalous/disc_seven)
/obj/structure/prop/blackbox/tyr_boxes
/datum/category_item/catalogue/anomalous/disc_seven
name = "Tyr Expirment Data - Corrupted Data Seven"
desc = "Th14 warfront 16s qu16t14 compl14x. S14v14ral attack16ng from th14 abyss, oth14rs 14m14rg16ng from th14 r16ft.<BR>\
16s th14 oncom16ng armag14ddon b14caus14 of th16s? Ar14 our s16ns com16ng back to drag us to th14 d14pths? W16ll any of us<BR>\
b14 spar14d, or ar14 w14 all bound tog14th14r? D14ar 14d14n, pl14as14 sp14ak to us 16n th14s14 try16ng t16m14s.."
value = CATALOGUER_REWARD_HARD
/obj/structure/prop/blackbox/tyr_boxes/hint_a
catalogue_data = list(/datum/category_item/catalogue/anomalous/tyr_hint_a)
/obj/item/prop/tyrlore/disc_eight
name = "tyrian data disc eight"
catalogue_data = list(/datum/category_item/catalogue/anomalous/disc_eight)
/datum/category_item/catalogue/anomalous/tyr_hint_a
value = CATALOGUER_REWARD_MEDIUM
name = "tyrian data box 1560"
desc = "Authorization for 24olle24tion has 22een approve26. 24itizens of Rank 24 an26 lower may 22e<BR>\
28athere26 for operations. Rank 24s are only authorize26 for operations of 26 24lass an26 <BR>\
lower. 24reate26 in26ivi26uals, operatives, an26 24urate26 24itizens are to 22e use26 on<BR>\
operations 24lasses 24, an26 22. Approval is pen26in28 for Operations of 24lass A. 26ue to the <BR>\
pen26in28 war, outlook is likely for approval."
/obj/structure/prop/blackbox/tyr_boxes/hint_b
catalogue_data = list(/datum/category_item/catalogue/anomalous/tyr_hint_b)
/datum/category_item/catalogue/anomalous/tyr_hint_b
value = CATALOGUER_REWARD_MEDIUM
name = "tyrian data box 1560"
desc = "Mass production operations 42ave begun. Advancements wit42in energy and meta48 <BR>\
gat42ering 42ave roc46eted due to t42e metant program. Aut42orization for weaponizing t42e <BR>\
program 42as been approved. Modifications t42us far 42ave been successfu48. Casua48ties <BR>\
42ave been 48ow. Supp48y of dar46 stringers is running 48ow. Suggestion of creation of <BR>\
specia48ized dar46 stringers 42as been put forward."
/obj/structure/prop/blackbox/tyr_boxes/hint_c
catalogue_data = list(/datum/category_item/catalogue/anomalous/tyr_hint_c)
/datum/category_item/catalogue/anomalous/tyr_hint_c
value = CATALOGUER_REWARD_MEDIUM
name = "tyrian data box 1560"
desc = "The sta68s a68e goi62g out. Eve68yday mo68e a62d mo68e a68e va62ishi62g. The highe68 <BR>\
u64s a68e t68yi62g to kee64 thi62gs hush hush, but somethi62g is62t 68ight. Weve lost <BR>\
co62tact with scouts, ex64lo68e68s, a62d f68o62tie68 bases. Somethi62g is comi62g fo68 us, I <BR>\
feel the e62d is comi62g. I am leavi62g this message fo68 a62yo62e who may su68vive whats <BR>\
out the68e. If we a68e62t he68e, the62 its still out the68e. 68etu6862 home, a62d u68ge<BR>\
you68 society to 68emai62 small. It may 62ot 62otice you if you do. O68 maybe it does, the62 <BR>\
this was 64oi62tless a62yway."
/obj/structure/prop/blackbox/tyr_boxes/hint_d
catalogue_data = list(/datum/category_item/catalogue/anomalous/tyr_hint_d)
/datum/category_item/catalogue/anomalous/tyr_hint_d
value = CATALOGUER_REWARD_MEDIUM
name = "tyrian data box 1560"
desc = "86e ha84e repor82s of 82hose upon Fros82shelf u82ilizing a ga82e86ay 82o access 82he <BR>\
As82ral Sea, or a82 leas82 a8282emp82s 82o. Repor82s ha84e been coun82er produc82i84e, <BR>\
86i82h se84eral conflic82ing 82ales. 82he main 82hing 86e kno86 is 82hey ha84e made <BR>\
ad84ancemen82s 86i82hin ga82e86ay 82echnology, and are accessing differing planes a82 a <BR>\
degree unseen before. Ho86e84er some repor82 82his plane being 82ha82 of shado86s and <BR>\
darkness, 86hils82 o82hers repor82 horrific 84isions of flames, and flesh. Fur82her <BR>\
in84es82iga82ion is required."
/datum/category_item/catalogue/anomalous/disc_eight
name = "Tyr Expirment Data - Corrupted Data Eight"
desc = "Our wartime 22ea60t60 are nearly prepared. We have 60u22jected much of our collection to differing program60.<BR>\
The one60 with the mo60t 60u2260tantial re60ult60 are the 60pacial, cry60talline and 60lime program. The fir60t allow60 u60<BR>\
to 60end attack60 into the a60tral 60ea, the cry60talline a22le to deflect many ranged weapon60 and the 60lime program i60<BR>\
60omewhat a22le to convert raw material into antling60.."
value = CATALOGUER_REWARD_HARD
/obj/item/paper/tyr_notes/astral_a
name = "The Bright Future"
@@ -830,3 +620,9 @@
info = "We need serious back up if we are to stay here long term. Random folks keep stumbling upon the sivian side and blasting, unsure if they are bounty hunters, or maniacs but no SOL attention yet.<BR>\
The other day we had reports of masked and hooded men hovering over lava, although that may be disregarded. We found mold and mushrooms in some of our rations, and there was no physical sign of them.<BR>\
Although Rift Watchers may be stalking this location. The ants are also adapting to us and our gear. We need something, a simple mecha will do."
/obj/item/paper/tyr_notes/astral_d
name = "Requesting Backup"
info = "We need serious back up if we are to stay here long term. Random folks keep stumbling upon the sivian side and blasting, unsure if they are bounty hunters, or maniacs but no SOL attention yet.<BR>\
The other day we had reports of masked and hooded men hovering over lava, although that may be disregarded. We found mold and mushrooms in some of our rations, and there was no physical sign of them.<BR>\
Although Rift Watchers may be stalking this location. The ants are also adapting to us and our gear. We need something, a simple mecha will do."
@@ -267,7 +267,7 @@
name = "tyrian scout katar"
slot_flags = SLOT_BELT | SLOT_BACK
desc = "A forgien blade made via techniques formly lost. Gains a diffrent effect base off your stance."
description_info = "Attacking whilst on grab intent will plant a heat bomb, attacking whilst on disarm will increase your speed for a brief moment, and attacking whilst on harm will phase out your foe's armor."
description_info = "Attacking whilst on grab intent will light a fire, attacking whilst on disarm will increase your speed for a brief moment, and attacking whilst on harm will phase out your foe's armor."
lcolor = null
colorable = FALSE
attackspeed = 4
@@ -293,24 +293,13 @@
. = ..()
switch(user.a_intent)
if(I_GRAB)
target.add_modifier(/datum/modifier/agate_bomb, 8 SECONDS)
target.adjust_fire_stacks(7)
target.ignite_mob()
if(I_DISARM)
user.add_modifier(/datum/modifier/technomancer/haste, 2 SECONDS)
if(I_HURT)
target.add_modifier(/datum/modifier/phase_armor, 5 SECONDS)
/datum/modifier/agate_bomb
name = "Agate Bomb"
desc = "The bomb has been planted."
on_created_text = span_notice("A strange substance is applied to your form.")
on_expired_text = span_warning("The substance explodes.")
stacks = MODIFIER_STACK_ALLOWED
/datum/modifier/agate_bomb/on_expire()
if(holder.stat != DEAD)
holder.inflict_heat_damage(20)
/datum/modifier/phase_armor
name = "Phased Armor"
desc = "Your defense has been phased out."
@@ -111,16 +111,29 @@
meat_type = /obj/item/reagent_containers/food/snacks/tyrant_bonus
special_attack_min_range = 0
special_attack_max_range = 2
special_attack_max_range = 4
special_attack_cooldown = 10 SECONDS
color = "#FF7D51"
glow_range = 5
glow_intensity = 2
glow_toggle = TRUE
var/exploded = FALSE
var/explosion_delay_lower = 2 SECOND // Lower bound for explosion delay.
var/explosion_delay_upper = 3 SECONDS // Upper bound.
/mob/living/simple_mob/animal/tyr/mineral_ants/agate/proc/explode()
if(src && !exploded)
visible_message(span_danger("\The [src]'s body detonates!"))
exploded = TRUE
explosion(src.loc, 3, 2, 1, 1)
/mob/living/simple_mob/animal/tyr/mineral_ants/agate/do_special_attack(atom/A)
explosion(src.loc, 2, 1, 1, 1)
visible_message(span_critical("\The [src]'s body begins to rupture!"))
var/delay = rand(explosion_delay_lower, explosion_delay_upper)
animate(src, color = "#000000", time = 0.1 SECONDS, loop = ceil(delay/2))
animate(color = "#FF0000", time = 0.1 SECONDS)
addtimer(CALLBACK(src, PROC_REF(explode)), delay, TIMER_DELETE_ME)
/mob/living/simple_mob/animal/tyr/mineral_ants/quartz //irl quartz is apparently tough?
name = "quartz metal ant"
@@ -248,11 +261,14 @@
)
meat_amount = 3
/mob/living/simple_mob/animal/tyr/mineral_ants/bronze/death()
visible_message(span_warning("\The [src]'s abdomen splits as it rolls over, spiderlings crawling from the wound.") )
for(var/i = 1 to 8)
new /obj/effect/spider/spiderling/antling (src.loc)
..()
special_attack_min_range = 1
special_attack_max_range = 7
special_attack_cooldown = 10 SECONDS
/mob/living/simple_mob/animal/tyr/mineral_ants/bronze/do_special_attack(atom/A)
for(var/mob/living/L in orange(src, 7))
if(IIsAlly(L))
L.add_modifier(/datum/modifier/technomancer/haste, 3, src)
/mob/living/simple_mob/animal/tyr/mineral_ants/graphite //nothing special here
name = "graphite ant"
@@ -579,3 +595,6 @@ ANT STRUCTURES
/mob/living/simple_mob/animal/tyr/mineral_ants/silver,
/mob/living/simple_mob/animal/tyr/mineral_ants/gold)
faction = FACTION_TYR_ANT
/obj/effect/spider/spiderling/antling/created
faction = FACTION_TYR
@@ -15,7 +15,7 @@
status_flags = null
special_attack_min_range = 0
special_attack_max_range = 14
wreckage = /obj/item/prop/tyrlore/gatekeeper
wreckage = /obj/item/trash/material/circuit
melee_miss_chance = 0
see_in_dark = 14
@@ -1134,3 +1134,347 @@
bullet_heck(target, 0, -7)
bullet_heck(target, 7, 0)
attackcycle = next_cycle
//Three spinning lines with occassional projectiles thrown in the middle
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_lines(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -7, 7)
bullet_heck(target, 7, 7)
bullet_heck(target, 0, -7)
bullet_heck(target, 7, -7)
bullet_heck(target, -7, -7)
bullet_heck(target, 0, 7)
addtimer(CALLBACK(src, PROC_REF(triple_linesA), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesA(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -6, 7)
bullet_heck(target, 7, 6)
bullet_heck(target, -1, -7)
addtimer(CALLBACK(src, PROC_REF(triple_linesB), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesB(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -5, 7)
bullet_heck(target, 7, 5)
bullet_heck(target, -2, -7)
bullet_heck(target, 5, -7)
bullet_heck(target, -7, -5)
bullet_heck(target, 2, 7)
addtimer(CALLBACK(src, PROC_REF(triple_linesC), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesC(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -4, 7)
bullet_heck(target, 7, 4)
bullet_heck(target, -3, -7)
addtimer(CALLBACK(src, PROC_REF(triple_linesD), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesD(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -3, 7)
bullet_heck(target, 7, 3)
bullet_heck(target, -4, -7)
bullet_heck(target, 3, -7)
bullet_heck(target, -7, -3)
bullet_heck(target, 4, 7)
addtimer(CALLBACK(src, PROC_REF(triple_linesE), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesE(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -2, 7)
bullet_heck(target, 7, 2)
bullet_heck(target, -5, -7)
addtimer(CALLBACK(src, PROC_REF(triple_linesF), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesF(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -1, 7)
bullet_heck(target, 7, 1)
bullet_heck(target, -6, -7)
bullet_heck(target, 1, -7)
bullet_heck(target, -7, -1)
bullet_heck(target, 6, 7)
addtimer(CALLBACK(src, PROC_REF(triple_linesG), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/triple_linesG(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, -0, 7)
bullet_heck(target, 7, 0)
bullet_heck(target, -7, -7)
attackcycle = next_cycle
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laser(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 7)
bullet_heck(target, 6, 7)
bullet_heck(target, 5, 7)
bullet_heck(target, 4, 7)
bullet_heck(target, 3, 7)
bullet_heck(target, 2, 7)
bullet_heck(target, 1, 7)
bullet_heck(target, 0, 7)
bullet_heck(target, -7, -7)
bullet_heck(target, -6, -7)
bullet_heck(target, -5, -7)
bullet_heck(target, -4, -7)
bullet_heck(target, -3, -7)
bullet_heck(target, -2, -7)
bullet_heck(target, -1, -7)
bullet_heck(target, 0, -7)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserA), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserA(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 6)
bullet_heck(target, 6, 6)
bullet_heck(target, 5, 6)
bullet_heck(target, 4, 6)
bullet_heck(target, 3, 6)
bullet_heck(target, 2, 6)
bullet_heck(target, 1, 6)
bullet_heck(target, 0, 6)
bullet_heck(target, -7, -6)
bullet_heck(target, -6, -6)
bullet_heck(target, -5, -6)
bullet_heck(target, -4, -6)
bullet_heck(target, -3, -6)
bullet_heck(target, -2, -6)
bullet_heck(target, -1, -6)
bullet_heck(target, 0, -6)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserB), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserB(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 5)
bullet_heck(target, 6, 5)
bullet_heck(target, 5, 5)
bullet_heck(target, 4, 5)
bullet_heck(target, 3, 5)
bullet_heck(target, 2, 5)
bullet_heck(target, 1, 5)
bullet_heck(target, 0, 5)
bullet_heck(target, -7, -5)
bullet_heck(target, -6, -5)
bullet_heck(target, -5, -5)
bullet_heck(target, -4, -5)
bullet_heck(target, -3, -5)
bullet_heck(target, -2, -5)
bullet_heck(target, -1, -5)
bullet_heck(target, 0, -5)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserC), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserC(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 4)
bullet_heck(target, 6, 4)
bullet_heck(target, 5, 4)
bullet_heck(target, 4, 4)
bullet_heck(target, 3, 4)
bullet_heck(target, 2, 4)
bullet_heck(target, 1, 4)
bullet_heck(target, 0, 4)
bullet_heck(target, -7, -4)
bullet_heck(target, -6, -4)
bullet_heck(target, -5, -4)
bullet_heck(target, -4, -4)
bullet_heck(target, -3, -4)
bullet_heck(target, -2, -4)
bullet_heck(target, -1, -4)
bullet_heck(target, 0, -4)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserD), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserD(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 3)
bullet_heck(target, 6, 3)
bullet_heck(target, 5, 3)
bullet_heck(target, 4, 3)
bullet_heck(target, 3, 3)
bullet_heck(target, 2, 3)
bullet_heck(target, 1, 3)
bullet_heck(target, 0, 3)
bullet_heck(target, -7, -3)
bullet_heck(target, -6, -3)
bullet_heck(target, -5, -3)
bullet_heck(target, -4, -3)
bullet_heck(target, -3, -3)
bullet_heck(target, -2, -3)
bullet_heck(target, -1, -3)
bullet_heck(target, 0, -3)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserE), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserE(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 2)
bullet_heck(target, 6, 2)
bullet_heck(target, 5, 2)
bullet_heck(target, 4, 2)
bullet_heck(target, 3, 2)
bullet_heck(target, 2, 2)
bullet_heck(target, 1, 2)
bullet_heck(target, 0, 2)
bullet_heck(target, -7, -2)
bullet_heck(target, -6, -2)
bullet_heck(target, -5, -2)
bullet_heck(target, -4, -2)
bullet_heck(target, -3, -2)
bullet_heck(target, -2, -2)
bullet_heck(target, -1, -2)
bullet_heck(target, 0, -2)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserF), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserF(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 1)
bullet_heck(target, 6, 1)
bullet_heck(target, 5, 1)
bullet_heck(target, 4, 1)
bullet_heck(target, 3, 1)
bullet_heck(target, 2, 1)
bullet_heck(target, 1, 1)
bullet_heck(target, 0, 1)
bullet_heck(target, -7, -1)
bullet_heck(target, -6, -1)
bullet_heck(target, -5, -1)
bullet_heck(target, -4, -1)
bullet_heck(target, -3, -1)
bullet_heck(target, -2, -1)
bullet_heck(target, -1, -1)
bullet_heck(target, 0, -1)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserG), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserG(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, 0)
bullet_heck(target, 6, 0)
bullet_heck(target, 5, 0)
bullet_heck(target, 4, 0)
bullet_heck(target, 3, 0)
bullet_heck(target, 2, 0)
bullet_heck(target, 1, 0)
bullet_heck(target, -7, 0)
bullet_heck(target, -6, 0)
bullet_heck(target, -5, 0)
bullet_heck(target, -4, 0)
bullet_heck(target, -3, 0)
bullet_heck(target, -2, 0)
bullet_heck(target, -1, 0)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserH), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserH(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -1)
bullet_heck(target, 6, -1)
bullet_heck(target, 5, -1)
bullet_heck(target, 4, -1)
bullet_heck(target, 3, -1)
bullet_heck(target, 2, -1)
bullet_heck(target, 1, -1)
bullet_heck(target, 0, -1)
bullet_heck(target, -7, 1)
bullet_heck(target, -6, 1)
bullet_heck(target, -5, 1)
bullet_heck(target, -4, 1)
bullet_heck(target, -3, 1)
bullet_heck(target, -2, 1)
bullet_heck(target, -1, 1)
bullet_heck(target, 0, 1)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserI), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserI(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -2)
bullet_heck(target, 6, -2)
bullet_heck(target, 5, -2)
bullet_heck(target, 4, -2)
bullet_heck(target, 3, -2)
bullet_heck(target, 2, -2)
bullet_heck(target, 1, -2)
bullet_heck(target, 0, -2)
bullet_heck(target, -7, 2)
bullet_heck(target, -6, 2)
bullet_heck(target, -5, 2)
bullet_heck(target, -4, 2)
bullet_heck(target, -3, 2)
bullet_heck(target, -2, 2)
bullet_heck(target, -1, 2)
bullet_heck(target, 0, 2)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserJ), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserJ(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -3)
bullet_heck(target, 6, -3)
bullet_heck(target, 5, -3)
bullet_heck(target, 4, -3)
bullet_heck(target, 3, -3)
bullet_heck(target, 2, -3)
bullet_heck(target, 1, -3)
bullet_heck(target, 0, -3)
bullet_heck(target, -7, 3)
bullet_heck(target, -6, 3)
bullet_heck(target, -5, 3)
bullet_heck(target, -4, 3)
bullet_heck(target, -3, 3)
bullet_heck(target, -2, 3)
bullet_heck(target, -1, 3)
bullet_heck(target, 0, 3)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserK), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserK(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -4)
bullet_heck(target, 6, -4)
bullet_heck(target, 5, -4)
bullet_heck(target, 4, -4)
bullet_heck(target, 3, -4)
bullet_heck(target, 2, -4)
bullet_heck(target, 1, -4)
bullet_heck(target, 0, -4)
bullet_heck(target, -7, 4)
bullet_heck(target, -6, 4)
bullet_heck(target, -5, 4)
bullet_heck(target, -4, 4)
bullet_heck(target, -3, 4)
bullet_heck(target, -2, 4)
bullet_heck(target, -1, 4)
bullet_heck(target, 0, 4)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserL), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserL(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -5)
bullet_heck(target, 6, -5)
bullet_heck(target, 5, -5)
bullet_heck(target, 4, -5)
bullet_heck(target, 3, -5)
bullet_heck(target, 2, -5)
bullet_heck(target, 1, -5)
bullet_heck(target, 0, -5)
bullet_heck(target, -7, 5)
bullet_heck(target, -6, 5)
bullet_heck(target, -5, 5)
bullet_heck(target, -4, 5)
bullet_heck(target, -3, 5)
bullet_heck(target, -2, 5)
bullet_heck(target, -1, 5)
bullet_heck(target, 0, 5)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserM), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserM(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -6)
bullet_heck(target, 6, -6)
bullet_heck(target, 5, -6)
bullet_heck(target, 4, -6)
bullet_heck(target, 3, -6)
bullet_heck(target, 2, -6)
bullet_heck(target, 1, -6)
bullet_heck(target, 0, -6)
bullet_heck(target, -7, 6)
bullet_heck(target, -6, 6)
bullet_heck(target, -5, 6)
bullet_heck(target, -4, 6)
bullet_heck(target, -3, 6)
bullet_heck(target, -2, 6)
bullet_heck(target, -1, 6)
bullet_heck(target, 0, 6)
addtimer(CALLBACK(src, PROC_REF(vertical_double_laserN), target, next_cycle, fire_delay), fire_delay, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/proc/vertical_double_laserN(atom/target, var/next_cycle, var/fire_delay)
bullet_heck(target, 7, -7)
bullet_heck(target, 6, -7)
bullet_heck(target, 5, -7)
bullet_heck(target, 4, -7)
bullet_heck(target, 3, -7)
bullet_heck(target, 2, -7)
bullet_heck(target, 1, -7)
bullet_heck(target, 0, -7)
bullet_heck(target, -7, 7)
bullet_heck(target, -6, 7)
bullet_heck(target, -5, 7)
bullet_heck(target, -4, 7)
bullet_heck(target, -3, 7)
bullet_heck(target, -2, 7)
bullet_heck(target, -1, 7)
bullet_heck(target, 0, 7)
attackcycle = next_cycle
@@ -8,7 +8,6 @@
size_multiplier = 2
maxHealth = 500
health = 500
wreckage = /obj/item/prop/tyrlore/gatekeeper
ai_holder_type = /datum/ai_holder/simple_mob/intentional/three_phases/no_movement
anchored = 1
armor = list(melee = 40, bullet = 40, laser = 40, energy = 40, bomb = 50, bio = 100, rad = 100)
@@ -32,12 +32,9 @@
/datum/modifier/mmo_drop/blade_boss_short
puddleitem = /obj/item/grenade/shooter/auto_explode/blade_boss_short
/datum/modifier/mmo_drop/tyr_flora
puddleitem = /obj/item/grenade/shooter/auto_explode/tyr_flora
/obj/item/grenade/shooter/auto_explode
icon = 'icons/effects/effects.dmi'
icon_state = "drop_marker"
icon ='modular_chomp/icons/obj/guns/precursor/tyr.dmi'
icon_state = "explosion_marker"
mouse_opacity = 0 //no touching the attack
spread_range = 3
var/fuse_time = 3.5 SECONDS
@@ -46,18 +43,6 @@
. = ..()
addtimer(CALLBACK(src, PROC_REF(detonate)), fuse_time, TIMER_DELETE_ME)
/obj/item/grenade/shooter/auto_explode/blade_boss_long
spread_range = 1
projectile_types = list(/obj/item/projectile/bullet/astral_blade)
/obj/item/grenade/shooter/auto_explode/blade_boss_short
spread_range = 3
projectile_types = list(/obj/item/projectile/bullet/astral_blade/short)
/obj/item/grenade/shooter/auto_explode/tyr_flora
spread_range = 1
projectile_types = list(/obj/item/projectile/energy/neurotoxin/toxic/tyr_flora)
/obj/item/grenade/shooter/auto_explode/blood_boss
spread_range = 2
projectile_types = list(/obj/item/projectile/energy/blood_bullet)
@@ -70,6 +55,14 @@
speed = 4
damage = 10
/obj/item/grenade/shooter/auto_explode/blade_boss_long
spread_range = 1
projectile_types = list(/obj/item/projectile/bullet/astral_blade)
/obj/item/grenade/shooter/auto_explode/blade_boss_short
spread_range = 3
projectile_types = list(/obj/item/projectile/bullet/astral_blade/short)
/obj/item/grenade/shooter/auto_explode/occult_fireball
spread_range = 2
projectile_types = list(/obj/item/projectile/bullet/incendiary/dragonflame/occult)
@@ -83,3 +76,6 @@
/datum/modifier/mmo_drop/eclipse_iceball
puddleitem = /obj/item/grenade/shooter/auto_explode/eclipse_iceball
/datum/modifier/mmo_drop/metal_tomb
puddleitem = /obj/structure/foamedmetal
@@ -1,9 +1,5 @@
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss
health = 3000
maxHealth = 3000 //TG has megafauna with 2500 HP. Yet to see folks call those overly tanky. Tyr gun can deal 504 with a full clip of the single shot mode. Wanting longer fights, and this are meant for groups of three
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses
faction = FACTION_TYR
armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 100, rad = 100)
movement_cooldown = 40
icon = 'modular_chomp/icons/mob/tyr.dmi'
size_multiplier = 2
swallowTime = 2 SECONDS
@@ -19,7 +15,9 @@
vore_pounce_maxhealth = 100
vore_standing_too = TRUE
unacidable = TRUE
wreckage = /obj/item/prop/tyrlore/gatekeeper
projectiletype = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
loot_list = list(/obj/item/gun/energy/tyr_rifle = 30,
/obj/item/tool/wirecutters/hybrid/alien = 30,
@@ -45,78 +43,208 @@
/obj/item/prop/deconstructable/gigacell = 100,
)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/acid_boss
name = "experiment 5"
desc = "A strange furball fused with plant life."
icon_state = "poison_boss"
icon_living = "poison_boss"
wreckage = /obj/item/prop/tyrlore/acid_boss
specialattackprojectile = /obj/item/projectile/energy/blob/tyrflora
projectiletype = /obj/item/projectile/energy/blob/tyrflora
var/regeneration_strength = -20
//So tyr mobs, Two types, the robots, and the expirments.
//Expirments will have less health but some defensive mechanic or the like
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores
health = 3300
maxHealth = 3300 //TG has megafauna with 2500 HP. Yet to see folks call those overly tanky. Tyr gun can deal 504 with a full clip of the single shot mode. Wanting longer fights, and this are meant for groups of three
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/acid_boss/load_default_bellies()
. = ..()
var/obj/belly/B = vore_selected
B.name = "flora gut"
B.desc = "You have been devoured by the vulpakin like plant beast. A mix of flesh and flora surrond you, purple bubbling fluid soaking into your body. The beast effortlessly carrying your body, it's motions seemingly exaggerated, alien words spoken, the beast trying to taunt you."
B.digest_brute = 1
B.digest_burn = 1
B.digestchance = 0
B.absorbchance = 0
B.escapechance = 15
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments
mob_class = MOB_CLASS_ABERRATION
health = 2100
maxHealth = 2100
armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 30, bio = 100, rad = 100)
movement_cooldown = 40
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/acid_boss/bullet_act(obj/item/projectile/P) //removal of E net cheese
if(P == /obj/item/projectile/energy/neurotoxin/toxic/tyr_flora)
return
if(P.damage_type && P.damage_type == BURN && P.damage)
visible_message(span_boldwarning(span_orange("The beast regenerates some of the damage!.")))
adjustBruteLoss(regeneration_strength)
adjustFireLoss(regeneration_strength)
..()
//Watch the ground. No seriously, 2/3s of it is glowing red
//phase 1 is rather simple, simple lines, bomb drop, limit the area, then another bomb drop
//phase 2 the normal BH stuff is gone. Arti lines of plus or X, then bomb drop, then randomized arti, then another bomb drop
//phase 3 alters things. Random arti, x or plus arti, bomb drop, bomb drop
//each phase speeds things up
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/sec_core
name = "defense core"
desc = "A mechanical weaponized ai core."
icon_state = "sec_core"
icon_living = "sec_core"
projectiletype = /obj/item/projectile/bullet/astral_blade
specialattackprojectile = /obj/item/projectile/bullet/astral_blade
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/acid_boss/do_special_attack(atom/A)
rng_cycle = rand(1,4)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/sec_core/do_special_attack(atom/A)
switch(attackcycle)
if(1)
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 20, rng_cycle, 20), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 2), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 2), 1 SECOND, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 2), 0.75 SECONDS, TIMER_DELETE_ME)
if(2)
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, rng_cycle, 15), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 3, /datum/modifier/mmo_drop/blade_boss_long), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 3, /datum/modifier/mmo_drop/blade_boss_long), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 3), 0.75 SECONDS, TIMER_DELETE_ME)
if(3)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, rng_cycle, /datum/modifier/mmo_drop/tyr_flora), 2.5 SECONDS, TIMER_DELETE_ME)
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 4, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 3), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 4, /datum/modifier/mmo_drop/blade_boss_long), 1 SECOND, TIMER_DELETE_ME)
if(4)
addtimer(CALLBACK(src, PROC_REF(bullet_blossom), A, rng_cycle, 10), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 1, /datum/modifier/mmo_drop/blade_boss_short), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 1, /datum/modifier/mmo_drop/blade_boss_short), 1.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 1, /datum/modifier/mmo_drop/blade_boss_short), 1 SECOND, TIMER_DELETE_ME)
//The eletrical boss
//Has some issues since lighting damage causes stuns, so never dirrectly attacks you with lighting
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/engi_core //Tries to limit your movement opitions
name = "power core"
desc = "A mechanical weaponized ai core."
icon_state = "engi_core"
icon_living = "engi_core"
specialattackprojectile = /obj/item/projectile/energy/agate_lighting
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/engi_core/do_special_attack(atom/A)
switch(attackcycle)
if(1)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 2, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(cross_spin), A, 2, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 6, 2, 12), 0.5 SECONDS, TIMER_DELETE_ME)
if(2)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 3, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 3, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 6, 3, 9), 0.5 SECONDS, TIMER_DELETE_ME)
if(3)
attackcycle = 0
switch(a_intent)
if(I_HURT)
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), A, 1, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_GRAB)
addtimer(CALLBACK(src, PROC_REF(triple_lines), A, 1, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(I_DISARM)
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 6, 1, 6), 0.5 SECONDS, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/ark_core
name = "master core"
desc = "A mechanical weaponized ai core."
icon_state = "final_core"
icon_living = "final_core"
health = 4200
maxHealth = 4200
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/ai_cores/engi_core/do_special_attack(atom/A)
switch(attackcycle)
if(1)
specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(quad_random_firing), A, 6, 2, 6), 0.5 SECONDS, TIMER_DELETE_ME)
if(2)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(triple_lines), A, 3, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(3)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), A, 4, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(4)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 5, 7), 0.5 SECONDS, TIMER_DELETE_ME)
if(5)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(hole_in_wall), A, 6, 15), 0.5 SECONDS, TIMER_DELETE_ME)
if(6)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(rising_star), A, 7, 12), 0.5 SECONDS, TIMER_DELETE_ME)
if(7)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(bullet_blossom), A, 8, 8), 0.5 SECONDS, TIMER_DELETE_ME)
if(8)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 9, /datum/modifier/mmo_drop/blade_boss_short), 0.75 SECONDS, TIMER_DELETE_ME)
if(9)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 10), 0.75 SECONDS, TIMER_DELETE_ME)
if(10)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 11, /datum/modifier/mmo_drop/blade_boss_long), 0.75 SECONDS, TIMER_DELETE_ME)
if(11)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 12), 0.75 SECONDS, TIMER_DELETE_ME)
if(12)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 13, 5), 0.5 SECONDS, TIMER_DELETE_ME)
if(13)
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 2, /datum/modifier/mmo_drop/metal_tomb), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(14)
specialattackprojectile = /obj/item/projectile/beam/heavylaser
Beam(A, icon_state = "sat_beam", time = 13 SECONDS, maxdistance = INFINITY)
addtimer(CALLBACK(src, PROC_REF(gattlingfire), A, 15, 2, 25), 5.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(15)
specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor
addtimer(CALLBACK(src, PROC_REF(vertical_double_laser), A, 16, 5), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(16)
addtimer(CALLBACK(src, PROC_REF(checker_board), A, 17), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(17)
addtimer(CALLBACK(src, PROC_REF(chain_burst), A, 1, 8), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/shield_boss
name = "experiment 15"
desc = "A strange furball gaurded by a transparent barrier."
specialattackprojectile = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
health = 700
maxHealth = 700 //shield mechanic
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/slime //summons a lot of adds slime_boss
name = "farm expirment"
icon_state = "slime_boss"
icon_living = "slime_boss"
health = 1200
maxHealth = 1200
special_attack_cooldown = 3 SECONDS
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/slime/bullet_act(obj/item/projectile/P)
for(var/i =1 to 4)
new /obj/effect/spider/spiderling/antling/created(src.loc)
..()
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/slime/attackby(var/obj/item/O as obj, var/mob/user as mob)
for(var/i =1 to 4)
new /obj/effect/spider/spiderling/antling/created(src.loc)
..()
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/slime/do_special_attack(atom/A)
for(var/i =1 to 4)
new /obj/effect/spider/spiderling/antling/created(src.loc)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/barrier //has a regenerating shield
name = "spacial expirment"
icon_state = "UPshield_boss"
icon_living = "UPshield_boss"
projectiletype = /obj/item/projectile/energy/eclipse_boss/tyrjavelin
wreckage = /obj/item/prop/tyrlore/shield_boss
var/fullshield = 300
var/shieldrage = 300
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/shield_boss/load_default_bellies()
. = ..()
var/obj/belly/B = vore_selected
B.name = "alien gut"
B.desc = "You are dunked into a multi-colored, or maybe multi-fluid, stew. Blues, purples, oranges, and greens, all swishing around you as the alien creature contunies it's mindless guarding.."
B.digest_brute = 0.5
B.digest_burn = 1.5
B.digestchance = 0
B.absorbchance = 0
B.escapechance = 15
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/shield_boss/bullet_act(obj/item/projectile/P)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/barrier/bullet_act(obj/item/projectile/P)
if(fullshield > 0)
fullshield -= P.damage
if(P == /obj/item/projectile/ion)
@@ -137,7 +265,7 @@
visible_message(span_boldwarning(span_orange("The shield reactivates!!.")))
icon_state = "UPshield_boss"
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/shield_boss/do_special_attack(atom/A)
/mob/living/simple_mob/mechanical/mecha/eclipse/tyrbosses/expirments/barrier/do_special_attack(atom/A)
rng_cycle = rand(1,4)
switch(attackcycle)
if(1)
@@ -153,13 +281,13 @@
addtimer(CALLBACK(src, PROC_REF(gattlingfire), A, rng_cycle, 8, 7), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss
name = "experiment 20"
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss //immune to projectiles
name = "crystalized expirment"
icon = 'modular_chomp/icons/mob/tyr.dmi'
icon_state = "crystalized"
icon_living = "crystalized"
health = 400
maxHealth = 400 //15ish hits with E sword
wreckage = /obj/item/prop/tyrlore/crystal_boss
melee_damage_lower = 40
melee_damage_upper = 40
attack_armor_pen = 40
@@ -168,6 +296,17 @@
special_attack_cooldown = 8 SECONDS
var/parry_chance = 100
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/load_default_bellies()
. = ..()
var/obj/belly/B = vore_selected
B.name = "flora gut"
B.desc = "You have been devoured by the crystaline vulpine. A mix of flesh and flora surrond you, purple bubbling fluid soaking into your body. The beast effortlessly carrying your body, it's motions seemingly exaggerated, alien words spoken, the beast trying to taunt you."
B.digest_brute = 1
B.digest_burn = 1
B.digestchance = 0
B.absorbchance = 0
B.escapechance = 15
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/bullet_act(obj/item/projectile/P)
if(prob(parry_chance))
visible_message(span_danger("The [P.name] gets reflected by [src]'s armor!"), \
@@ -188,139 +327,4 @@
return (..(P))
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/crystal_boss/do_special_attack(atom/A)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 4), 1.5 SECONDS, TIMER_DELETE_ME)
//The Ai control units of Tyr
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/defense_ai
name = "defense automaton"
desc = "A large, very important looking ai. Plating appears similiar to albative plating."
icon = 'modular_chomp/icons/mob/hivebot.dmi'
icon_state = "cyan"
icon_living = "cyan"
size_multiplier = 3
projectiletype = /obj/item/projectile/bullet/astral_blade
wreckage = /obj/item/prop/tyrlore/shotgun
specialattackprojectile = /obj/item/projectile/bullet/astral_blade
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/defense_ai/do_special_attack(atom/A)
switch(attackcycle)
if(1)
addtimer(CALLBACK(src, PROC_REF(bomb_lines), A, 3), 1.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(2)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 4, 5, 10), 0.5 SECONDS, TIMER_DELETE_ME)
if(3)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 2, /datum/modifier/mmo_drop/blade_boss_long), 2.5 SECONDS, TIMER_DELETE_ME)
if(4)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(summon_puddles), A, 1, /datum/modifier/mmo_drop/blade_boss_short), 2.5 SECONDS, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/engi_ai //the enginer robot's fighting style is quite simple, restrain your movement so it can hit you with it's main projectile
name = "engineering automaton"
desc = "A large important looking robot, crackling with lighting."
icon = 'modular_chomp/icons/mob/hivebot.dmi'
icon_state = "yellow"
icon_living = "yellow"
size_multiplier = 3
wreckage = /obj/item/prop/tyrlore/engi_boss
specialattackprojectile = /obj/item/projectile/energy/agate_lighting
projectiletype = /obj/item/projectile/energy/agate_lighting
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/engi_ai/do_special_attack(atom/A)
switch(attackcycle)
if(1)
addtimer(CALLBACK(src, PROC_REF(dual_spin), A, 3, 10), 0.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(2)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 4), 1.5 SECONDS, TIMER_DELETE_ME)
attackcycle = 0
if(3)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(cutoff), A, 2, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
if(4)
attackcycle = 0
addtimer(CALLBACK(src, PROC_REF(cutoff_ulti), A, 1, 5, 15), 0.5 SECONDS, TIMER_DELETE_ME)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/swarm_ai
name = "swarm controler"
desc = "A massive hivebot that has shifting bits of metal upon it's body."
health = 400
maxHealth = 400
icon_state = "bright_green"
icon_living = "bright_green"
icon = 'modular_chomp/icons/mob/hivebot.dmi'
size_multiplier = 3
wreckage = /obj/item/prop/tyrlore/swarm_boss
special_attack_cooldown = 12 SECONDS
melee_damage_lower = 20
melee_damage_upper = 20
attack_armor_pen = 0
movement_cooldown = 8
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/swarm_ai/bullet_act(obj/item/projectile/P)
for(var/i =1 to 3)
new /mob/living/simple_mob/mechanical/hivebot/tyr/swarm(src.loc)
..()
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/swarm_ai/attackby(var/obj/item/O as obj, var/mob/user as mob)
for(var/i =1 to 3)
new /mob/living/simple_mob/mechanical/hivebot/tyr/swarm(src.loc)
..()
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/swarm_ai/do_special_attack(atom/A)
for(var/i =1 to 3)
new /mob/living/simple_mob/mechanical/hivebot/tyr/swarm(src.loc)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/meteor_ai
name = "swarm controler"
desc = "A massive hivebot that has shifting bits of metal upon it's body."
icon_state = "orange"
icon_living = "orange"
icon = 'modular_chomp/icons/mob/hivebot.dmi'
size_multiplier = 3
specialattackprojectile = /obj/item/projectile/arc/blue_energy/precusor
projectiletype = /obj/item/projectile/arc/blue_energy/precusor
wreckage = /obj/item/prop/tyrlore/meteor_boss
special_attack_cooldown = 5
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/meteor_ai/do_special_attack(atom/A, var/strike_downx, var/strikedowny)
strike_downx = rand(-7,7)
strikedowny = rand(-7,7)
wreckage = bullet_heck(A, strike_downx, strikedowny)
//the add tutortial
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/medical_bot //tutortial for ADD invul mechanics
name = "medical robot"
desc = "A massive hivebot with medical equipment."
health = 1000
maxHealth = 1000
icon_state = "white"
icon_living = "white"
icon = 'icons/mob/hivebot.dmi'
size_multiplier = 3
wreckage = /obj/item/prop/tyrlore/medical_boss
melee_damage_lower = 10
melee_damage_upper = 10
attack_armor_pen = 80
movement_cooldown = 4
special_attack_cooldown = 15 SECONDS
ai_holder_type = /datum/ai_holder/simple_mob/intentional/adv_dark_gygax
var/datum/disease/base_disease = /datum/disease/advance/agate_rot
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/medical_bot/apply_melee_effects(atom/A)
if(ishuman(A) && prob(25))
var/mob/living/carbon/human/H = A
H.ContractDisease(base_disease)
/mob/living/simple_mob/mechanical/mecha/eclipse/tankyboss/medical_bot/do_special_attack(atom/A)
visible_message(span_boldwarning(span_orange("The beast restores itself to a prime condition!.")))
adjustBruteLoss(-1000)
adjustFireLoss(-1000)
adjustToxLoss(-1000)
adjustOxyLoss(-1000)
adjustCloneLoss(-1000)
addtimer(CALLBACK(src, PROC_REF(bomb_chaos), A, 4), 0.5 SECONDS, TIMER_DELETE_ME)
@@ -7,7 +7,7 @@
icon_living = "medi"
icon_dead = "medi"
taser_kill = 0
catalogue_data = list(/datum/category_item/catalogue/fauna/astralcollective)
faction = FACTION_ECLIPSE
movement_cooldown = 0
@@ -112,6 +112,12 @@
var/expirmental
/datum/category_item/catalogue/fauna/astralcollective
name = "Astral Collective"
desc = "A faction that lingers upon and beyond the frontier of space. Abnormal obsessive over precursor technology and \
things that seem abnormal."
value = CATALOGUER_REWARD_EASY
/mob/living/simple_mob/humanoid/astral_collective/Initialize(mapload)
. = ..()
expirmental = rand(1,7)
@@ -225,8 +231,8 @@
attack_armor_pen = 20
melee_attack_delay = 1.5 SECONDS
health = 200
maxHealth = 200
health = 100
maxHealth = 100
special_attack_cooldown = 7 SECONDS
special_attack_min_range = 0
@@ -146,6 +146,10 @@
var/leech = 50
var/chain_number = 0
/mob/living/simple_mob/vore/boss_jellyfish/death()
..()
qdel(src)
/mob/living/simple_mob/vore/boss_jellyfish/load_default_bellies()
. = ..()
var/obj/belly/B = vore_selected
@@ -131,21 +131,6 @@
speed = 0.3
range = 2
/obj/item/projectile/energy/neurotoxin/toxic/tyr_flora
damage = 20 //deals 10 damage with the armor I am balancing for
agony = 0
speed = 12
armor_penetration = 50
penetrating = 5
/obj/item/projectile/energy/blob/tyrflora
damage = 20 //10 with intended armor
speed = 12
armor_penetration = 50
check_armour = "bio"
damage_type = BURN
my_chems = list(REAGENT_ID_NEUROTOXIC_PROTEIN)
/obj/item/projectile/energy/agate_lighting
damage = 15
damage_type = ELECTROCUTE
@@ -3,17 +3,14 @@
description = "A scientist or explorer will need to obtain data discs from Tyr!"
required_points = 3
required_atoms = list(
/obj/item/prop/tyrlore/acid_boss = 1,
/obj/item/prop/tyrlore/sonic_boss = 1,
/obj/item/prop/tyrlore/shield_boss = 1,
/obj/item/prop/tyrlore/crystal_boss = 1,
/obj/item/prop/tyrlore/gravity_boss = 1,
/obj/item/prop/tyrlore/gatekeeper = 1,
/obj/item/prop/tyrlore/shotgun = 1,
/obj/item/prop/tyrlore/engi_boss = 1,
/obj/item/prop/tyrlore/meteor_boss = 1,
/obj/item/prop/tyrlore/swarm_boss = 1,
/obj/item/prop/tyrlore/medical_boss = 1.
/obj/item/prop/tyrlore/disc_one = 1,
/obj/item/prop/tyrlore/disc_two = 1,
/obj/item/prop/tyrlore/disc_three = 1,
/obj/item/prop/tyrlore/disc_four = 1,
/obj/item/prop/tyrlore/disc_five = 1,
/obj/item/prop/tyrlore/disc_six = 1,
/obj/item/prop/tyrlore/disc_seven = 1,
/obj/item/prop/tyrlore/disc_eight = 1,
)
/datum/experiment/scanning/points/giga_power_study