Under the Twin Suns: the S'rand'marr Sector (#15295)

This commit is contained in:
Alberyk
2023-02-02 14:51:06 -03:00
committed by GitHub
parent a0fc71c1ee
commit ff229569ae
162 changed files with 41866 additions and 465 deletions
@@ -45,6 +45,9 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
/mob/living/carbon/human/farwa/Initialize(mapload)
. = ..(mapload, SPECIES_MONKEY_TAJARA)
/mob/living/carbon/human/farwa/adhomai
faction = "Adhomai"
/mob/living/carbon/human/neaera/Initialize(mapload)
. = ..(mapload, SPECIES_MONKEY_SKRELL)
@@ -1,10 +1,10 @@
/mob/living/simple_animal/ice_tunneler
name = "ice tunneler"
desc = "An egg producing beast from Adhomai. It is known for burrowing in ice and snow."
icon = 'icons/mob/npc/livestock.dmi'
icon_state = "tunneler"
icon_living = "tunneler"
icon_dead = "tunneler_dead"
icon = 'icons/mob/npc/adhomai.dmi'
icon_state = "tunneler_f"
icon_living = "tunneler_f"
icon_dead = "tunneler_f_dead"
speak = list("Fiiiiiii!")
speak_emote = list("whistles")
emote_hear = list("whistles loudly")
@@ -14,6 +14,8 @@
organ_names = list("head", "chest", "right fore leg", "left fore leg", "right rear leg", "left rear leg")
hunger_enabled = FALSE
canbrush = TRUE
faction = "Adhomai"
gender = FEMALE
var/eggsleft = 0
/mob/living/simple_animal/ice_tunneler/attackby(var/obj/item/O as obj, var/mob/user as mob)
@@ -39,18 +41,30 @@
. =..()
if(!.)
return
if(!stat && prob(3) && eggsleft > 0)
if(!stat && prob(3) && eggsleft > 0 && (gender = FEMALE))
visible_message("[src] lays an egg.")
eggsleft--
new /obj/item/reagent_containers/food/snacks/egg(get_turf(src))
new /obj/item/reagent_containers/food/snacks/egg/ice_tunnelers(get_turf(src))
/mob/living/simple_animal/ice_tunneler/male
icon_state = "tunneler_m"
icon_living = "tunneler_m"
icon_dead = "tunneler_m_dead"
gender = MALE
/mob/living/simple_animal/ice_tunneler/baby
name = "ice tunneler chick"
icon_state = "tunneler_baby"
icon_living = "tunneler_baby"
icon_dead = "tunneler_baby_dead"
/mob/living/simple_animal/fatshouter
name = "fatshouter"
desc = "An adhomian animal known for its production of milk and wool."
icon = 'icons/mob/npc/livestock.dmi'
icon_state = "fatshouter"
icon_living = "fatshouter"
icon_dead = "fatshouter_dead"
icon = 'icons/mob/npc/adhomai.dmi'
icon_state = "fatshouter_f"
icon_living = "fatshouter_f"
icon_dead = "fatshouter_f_dead"
speak_emote = list("brays")
emote_hear = list("brays")
emote_see = list("shakes its head")
@@ -73,15 +87,24 @@
meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai
butchering_products = list(/obj/item/stack/material/animalhide = 5, /obj/item/reagent_containers/food/snacks/spreads/lard = 5)
faction = "Adhomai"
gender = FEMALE
/mob/living/simple_animal/fatshouter/male
icon_state = "fatshouter_m"
icon_living = "fatshouter_m"
icon_dead = "fatshouter_m_dead"
gender = MALE
has_udder = FALSE
/mob/living/simple_animal/hostile/retaliate/rafama
name = "steed of Mata'ke"
desc = "An animal native to Adhomai, known for its agressive behavior and mighty tusks."
icon = 'icons/mob/npc/livestock.dmi'
icon_state = "rafama"
icon_living = "rafama"
icon_dead = "rafama_dead"
icon = 'icons/mob/npc/adhomai.dmi'
icon_state = "rafama_f"
icon_living = "rafama_f"
icon_dead = "rafama_f_dead"
turns_per_move = 3
speak_emote = list("chuffs")
emote_hear = list("growls")
@@ -105,3 +128,17 @@
butchering_products = list(/obj/item/stack/material/animalhide = 5)
meat_amount = 8
faction = "Adhomai"
gender = FEMALE
/mob/living/simple_animal/hostile/retaliate/rafama/male
icon_state = "rafama_m"
icon_living = "rafama_m"
icon_dead = "rafama_m_dead"
gender = MALE
/mob/living/simple_animal/hostile/retaliate/rafama/baby
icon_state = "rafama_baby"
icon_living = "rafama_baby"
icon_dead = "rafama_baby_dead"
gender = MALE
@@ -25,7 +25,7 @@
environment_smash = 1
faction = "sham'tyr"
faction = "Adhomai"
flying = TRUE
butchering_products = list(/obj/item/stack/material/animalhide = 1)
meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai
@@ -0,0 +1,93 @@
/mob/living/simple_animal/hostile/cavern_geist
name = "cavern geist"
desc = "A near-mythical adhomian predator, known to haunt the caverns. Its eyes sparkle with a mixture of intelligence and malice."
speak_emote = list("gibbers")
icon = 'icons/mob/npc/cavern_geist.dmi'
icon_state = "geist"
icon_living = "geist"
icon_dead = "geist_dead"
universal_understand = TRUE
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
mob_push_flags = ALLMOBS
tameable = FALSE
organ_names = list("chest", "lower body", "left arm", "right arm", "left leg", "right leg", "head")
response_help = "pets"
response_disarm = "shoves"
response_harm = "harmlessly punches"
blood_amount = 600
maxHealth = 500
health = 500
harm_intent_damage = 0
melee_damage_lower = 35
melee_damage_upper = 35
resist_mod = 3
mob_size = 25
environment_smash = 2
attacktext = "mangled"
attack_sound = 'sound/weapons/bloodyslice.ogg'
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
pixel_x = -16
speed = -1
var/is_devouring = FALSE
/mob/living/simple_animal/hostile/cavern_geist/death(gibbed)
..()
anchored = TRUE
/mob/living/simple_animal/hostile/cavern_geist/verb/devour(mob/living/target as mob in oview())
set category = "Cavern Geist"
set name = "Devour"
set desc = "Devours a creature, destroying its body and regenerating health."
if(!Adjacent(target))
return
if(target.isSynthetic())
return
if(is_devouring)
to_chat(src, SPAN_WARNING("You are already feasting on something!"))
return
if(!health)
to_chat(src, SPAN_NOTICE("You are dead, you cannot use any abilities!"))
return
if(last_special > world.time)
to_chat(src, SPAN_WARNING("You must wait a little while before we can use this ability again!"))
return
visible_message(SPAN_WARNING("\The [src] begins ripping apart and feasting on [target]!"))
is_devouring = TRUE
target.adjustBruteLoss(35)
if(!do_after(src,150))
to_chat(src, SPAN_WARNING("You need to wait longer to devour \the [target]!"))
src.is_devouring = FALSE
return FALSE
visible_message(SPAN_WARNING("[src] tears a chunk from \the [target]'s flesh!"))
target.adjustBruteLoss(35)
if(!do_after(src, 150))
to_chat(src, SPAN_WARNING("You need to wait longer to devour \the [target]!"))
is_devouring = FALSE
return FALSE
visible_message(SPAN_WARNING("[target] is completely devoured by [src]!"), \
SPAN_WARNING("You completely devour \the [target]!"))
target.gib()
rejuvenate()
updatehealth()
last_special = world.time + 100
is_devouring = FALSE
return
@@ -62,6 +62,8 @@
simple_default_language = LANGUAGE_SIIK_MAAS
psi_pingable = FALSE
/mob/living/simple_animal/hostile/republicon/get_bullet_impact_effect_type(var/def_zone)
return BULLET_IMPACT_METAL
@@ -125,3 +127,111 @@
projectilesound = 'sound/effects/Explosion1.ogg'
rapid = FALSE
casingtype = null
/mob/living/simple_animal/hostile/retaliate/pra_exploration_drone
name = "hadiist exploration drone"
desc = "A reconnaissance drone used by the People's Republic of Adhomai to explore space and collect information on planets."
icon = 'icons/mob/npc/republicon.dmi'
icon_state = "exploration_drone"
icon_living = "exploration_drone"
icon_dead = "exploration_drone"
blood_type = COLOR_OIL
smart_ranged = TRUE
turns_per_move = 3
organ_names = list("body", "probes", "antenna")
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
a_intent = I_HURT
stop_automated_movement_when_pulled = 0
speak_emote = list("beeps")
emote_hear = list("buzzes","beeps")
speak = list("Hadii's grace, comrades.", "The stars belong to the People's Republic of Adhomai!", "The quest for knowledge must continue!")
emote_see = list("beeps curiously", "whirrs softly", "scans its surroundings")
destroy_surroundings = FALSE
universal_speak = TRUE
universal_understand = TRUE
mob_size = 3
health = 100
maxHealth = 100
melee_damage_lower = 5
melee_damage_upper = 5
attacktext = "smashed"
attack_sound = 'sound/weapons/genhit1.ogg'
speed = 1
ranged = TRUE
projectiletype = /obj/item/projectile/beam/pistol
projectilesound = 'sound/weapons/laser1.ogg'
emote_see = list("examines","hovers","blinks")
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
faction = "PRA"
tameable = FALSE
flying = TRUE
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
emote_sounds = list('sound/effects/creatures/PRA_drone.ogg')
var/datum/effect_system/ion_trail/ion_trail
/mob/living/simple_animal/hostile/retaliate/pra_exploration_drone/Allow_Spacemove(var/check_drift = 0)
return TRUE
/mob/living/simple_animal/hostile/retaliate/pra_exploration_drone/isSynthetic()
return TRUE
/mob/living/simple_animal/hostile/retaliate/pra_exploration_drone/get_bullet_impact_effect_type(var/def_zone)
return BULLET_IMPACT_METAL
/mob/living/simple_animal/hostile/retaliate/pra_exploration_drone/death()
..(null, "blows apart!")
var/T = get_turf(src)
new /obj/effect/gibspawner/robot(T)
spark(T, 1, alldirs)
qdel(src)
/mob/living/simple_animal/hostile/retaliate/pra_exploration_drone/Initialize()
. = ..()
set_light(1.2, 3, LIGHT_COLOR_RED)
ion_trail = new(src)
ion_trail.start()
/mob/living/simple_animal/hostile/retaliate/pra_exploration_drone/Destroy()
QDEL_NULL(ion_trail)
return ..()
/mob/living/simple_animal/hostile/retaliate/pra_exploration_drone/FoundTarget()
if(!ishuman(target_mob))
say("Hostile xenofauna detected!")
else if(istajara(target_mob))
say("Subversive element detected!")
else
say("Foreign invader detected!")
playsound(src, 'sound/effects/creatures/PRA_drone_aggro.ogg', 75, 1)
return
/mob/living/simple_animal/hostile/retaliate/pra_exploration_drone/LostTarget()
say("Returning to data gathering.")
return