Conflict Resolution

This commit is contained in:
Unknown
2019-03-30 16:47:18 -04:00
parent f8c9664178
commit 4297e186ca
7 changed files with 6 additions and 618 deletions
@@ -1,56 +1,3 @@
<<<<<<< HEAD
// Saviks are dangerous, angry creatures that hit hard, and will berserk if losing a fight.
/mob/living/simple_mob/animal/sif/savik
name = "savik"
tt_desc = "S Pistris tellus" //landshark
player_msg = "You have the ability to <b>berserk at will</b>, which will grant strong physical bonuses for \
a short period of time, however it will tire you and you will be much weaker for awhile after it expires."
faction = "savik"
icon_state = "savik"
icon_living = "savik"
icon_dead = "savik_dead"
icon = 'icons/jungle.dmi'
maxHealth = 125
health = 125
movement_cooldown = 0.5 SECONDS
melee_damage_lower = 15
melee_damage_upper = 35
attack_armor_pen = 15
attack_sharp = TRUE
attack_edge = TRUE
melee_attack_delay = 1 SECOND
attacktext = list("mauled")
say_list_type = /datum/say_list/savik
ai_holder_type = /datum/ai_holder/simple_mob/savik
/datum/say_list/savik
speak = list("Hruuugh!","Hrunnph")
emote_see = list("paws the ground","shakes its mane","stomps")
emote_hear = list("snuffles")
/mob/living/simple_mob/animal/sif/savik/handle_special()
if((get_AI_stance() in list(STANCE_APPROACH, STANCE_FIGHT)) && !is_AI_busy() && isturf(loc))
if(health <= (maxHealth * 0.5)) // At half health, and fighting someone currently.
berserk()
/datum/ai_holder/simple_mob/savik
mauling = TRUE
// So players can use it too.
/mob/living/simple_mob/animal/sif/savik/verb/berserk()
set name = "Berserk"
set desc = "Enrage and become vastly stronger for a period of time, however you will be weaker afterwards."
set category = "Abilities"
add_modifier(/datum/modifier/berserk, 30 SECONDS)
=======
// Saviks are dangerous, angry creatures that hit hard, and will berserk if losing a fight.
/datum/category_item/catalogue/fauna/savik
@@ -119,5 +66,4 @@
set desc = "Enrage and become vastly stronger for a period of time, however you will be weaker afterwards."
set category = "Abilities"
add_modifier(/datum/modifier/berserk, 30 SECONDS)
>>>>>>> 1afbe8d... Explorer Update - Cataloguers (#6016)
add_modifier(/datum/modifier/berserk, 30 SECONDS)
@@ -1,74 +1,3 @@
<<<<<<< HEAD
// Shantaks are essentially sif wolves.
/mob/living/simple_mob/animal/sif/shantak
name = "shantak"
desc = "A piglike creature with a bright iridiscent mane that sparkles as though lit by an inner light. \
Don't be fooled by its beauty though."
tt_desc = "S Choeros shantak"
faction = "shantak"
icon_state = "shantak"
icon_living = "shantak"
icon_dead = "shantak_dead"
icon = 'icons/jungle.dmi'
maxHealth = 75
movement_cooldown = 5
melee_damage_lower = 6
melee_damage_upper = 14
base_attack_cooldown = 1 SECOND
melee_attack_delay = 0.5 SECONDS
attack_armor_pen = 5
attack_sharp = TRUE
attack_edge = TRUE
attacktext = list("gouged")
say_list_type = /datum/say_list/shantak
/datum/say_list/shantak
speak = list("Shuhn.","Shrunnph?","Shunpf.")
emote_see = list("scratches the ground", "shakes out its mane", "clinks gently as it moves")
// The pack leader.
// Will command other shantaks to follow it.
/mob/living/simple_mob/animal/sif/shantak/leader
name = "big shantak"
desc = "A piglike creature with a bright iridiscent mane that sparkles as though lit by an inner light. \
This one seems bigger than the others, and has a commanding presence."
icon_scale = 1.5
maxHealth = 125
player_msg = "You have the ability to <b>command other shantaks to follow you</b>."
/mob/living/simple_mob/animal/sif/shantak/leader/verb/rally_pack()
set name = "Rally Pack"
set desc = "Commands your fellow packmembers to follow you, the leader."
set category = "Abilities"
for(var/mob/living/simple_mob/animal/sif/shantak/S in hearers(7, src))
if(istype(S, /mob/living/simple_mob/animal/sif/shantak/leader)) // Leaders won't follow other leaders. Also avoids trying to follow ourselves.
continue
if(!S.ai_holder)
continue
if(S.faction != src.faction)
continue
var/datum/ai_holder/AI = S.ai_holder
AI.set_follow(src)
// Variant that automatically commands nearby allies to follow it when created.
// Suggested to spawn last so it can rally up all the shantaks easily before hunting for tasty explorers.
/mob/living/simple_mob/animal/sif/shantak/leader/autofollow/Initialize()
rally_pack()
return ..()
// These ones only retaliate. Used for a PoI.
/mob/living/simple_mob/animal/sif/shantak/retaliate
=======
// Shantaks are essentially sif wolves.
/datum/category_item/catalogue/fauna/shantak
@@ -165,6 +94,5 @@
// These ones only retaliate. Used for a PoI.
/mob/living/simple_mob/animal/sif/shantak/retaliate
>>>>>>> 1afbe8d... Explorer Update - Cataloguers (#6016)
/mob/living/simple_mob/animal/sif/shantak/retaliate
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
@@ -1,133 +1,3 @@
<<<<<<< HEAD
// Space carp show up as a random event to wreck hapless people in space or near windows.
// They generally fit the archetype of 'fast but fragile'.
// This is compensated by being in groups (usually).
/mob/living/simple_mob/animal/space/carp
name = "space carp"
desc = "A ferocious, fang-bearing creature that resembles a fish."
icon_state = "carp"
icon_living = "carp"
icon_dead = "carp_dead"
icon_gib = "carp_gib"
faction = "carp"
maxHealth = 25
health = 25
movement_cooldown = 0 // Carp go fast
hovering = TRUE
response_help = "pets the"
response_disarm = "gently pushes aside the"
response_harm = "hits the"
melee_damage_lower = 7 // About 14 DPS.
melee_damage_upper = 7
base_attack_cooldown = 10 // One attack a second.
attack_sharp = TRUE
attack_sound = 'sound/weapons/bite.ogg'
attacktext = list("bitten")
meat_amount = 1
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
ai_holder_type = /datum/ai_holder/simple_mob/melee
var/knockdown_chance = 15
/mob/living/simple_mob/animal/space/carp/apply_melee_effects(var/atom/A)
if(isliving(A))
var/mob/living/L = A
if(prob(knockdown_chance))
L.Weaken(3)
L.visible_message(span("danger", "\The [src] knocks down \the [L]!"))
// Subtypes.
// Won't wander away.
/mob/living/simple_mob/animal/space/carp/event
ai_holder_type = /datum/ai_holder/simple_mob/event
/mob/living/simple_mob/animal/space/carp/large
name = "elder carp"
desc = "An older, more matured carp. Few survive to this age due to their aggressiveness."
icon = 'icons/mob/64x32.dmi'
icon_state = "shark"
icon_living = "shark"
icon_dead = "shark_dead"
maxHealth = 50
health = 50
movement_cooldown = 5 // Slower than the younger carp.
mob_size = MOB_LARGE
pixel_x = -16
default_pixel_x = -16
meat_amount = 3
/mob/living/simple_mob/animal/space/carp/large/huge
name = "great white carp"
desc = "A very rare breed of carp- and a very aggressive one."
icon = 'icons/mob/64x64.dmi'
icon_dead = "megacarp_dead"
icon_living = "megacarp"
icon_state = "megacarp"
maxHealth = 230
health = 230
movement_cooldown = 10
melee_damage_lower = 15 // About 20 DPS.
melee_damage_upper = 25
pixel_y = -16
default_pixel_y = -16
meat_amount = 10
/mob/living/simple_mob/animal/space/carp/holographic
name = "holographic carp"
desc = "An obviously holographic, but still ferocious looking carp."
// Might be worth using a filter similar to AI holograms in the future.
icon = 'icons/mob/AI.dmi'
icon_state = "holo4"
icon_living = "holo4"
icon_dead = "holo4"
alpha = 127
icon_gib = null
meat_amount = 0
meat_type = null
mob_class = MOB_CLASS_PHOTONIC // Xeno-taser won't work on this as its not a 'real' carp.
/mob/living/simple_mob/animal/space/carp/holographic/Initialize()
set_light(2) // Hologram lighting.
return ..()
// Presumably the holodeck emag code requires this.
// Pass TRUE to make safe. Pass FALSE to make unsafe.
/mob/living/simple_mob/animal/space/carp/holographic/proc/set_safety(safe)
if(!isnull(get_AI_stance())) // Will return null if lacking an AI holder or a player is controlling it w/o autopilot var.
ai_holder.hostile = !safe // Inverted so safe = TRUE means hostility = FALSE.
ai_holder.forget_everything() // Reset state so it'll stop chewing on its target.
// Called on death.
/mob/living/simple_mob/animal/space/carp/holographic/proc/derez()
visible_message(span("notice", "\The [src] fades away!"))
qdel(src)
/mob/living/simple_mob/animal/space/carp/holographic/gib()
derez() // Holograms can't gib.
/mob/living/simple_mob/animal/space/carp/holographic/death()
..()
derez()
=======
// Space carp show up as a random event to wreck hapless people in space or near windows.
// They generally fit the archetype of 'fast but fragile'.
// This is compensated by being in groups (usually).
@@ -280,5 +150,4 @@
..()
derez()
>>>>>>> 1afbe8d... Explorer Update - Cataloguers (#6016)
@@ -1,268 +1,3 @@
<<<<<<< HEAD
// Stronger than a regular Dark Gygax, this one has three special attacks, based on intents.
// First special attack launches three arcing rockets at the current target.
// Second special attack fires a projectile that creates a short-lived microsingularity that pulls in everything nearby. Magboots can protect from this.
// Third special attack creates a dangerous electric field that causes escalating electric damage, before emitting a tesla shock and blinding anyone looking at the mecha.
// The AI will choose one every ten seconds.
/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced
name = "advanced dark gygax"
desc = "An experimental exosuit that utilizes advanced materials to allow for greater protection while still being lightweight and fast. \
It also is armed with an array of next-generation weaponry."
icon_state = "darkgygax_adv"
wreckage = /obj/structure/loot_pile/mecha/gygax/dark/adv
icon_scale = 1.5
movement_shake_radius = 14
maxHealth = 450
deflect_chance = 25
has_repair_droid = TRUE
armor = list(
"melee" = 50,
"bullet" = 50,
"laser" = 50,
"energy" = 30,
"bomb" = 30,
"bio" = 100,
"rad" = 100
)
special_attack_min_range = 1
special_attack_max_range = 7
special_attack_cooldown = 10 SECONDS
projectiletype = /obj/item/projectile/force_missile
projectilesound = 'sound/weapons/wave.ogg'
var/obj/effect/overlay/energy_ball/energy_ball = null
/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced/Destroy()
if(energy_ball)
energy_ball.stop_orbit()
qdel(energy_ball)
return ..()
/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced/do_special_attack(atom/A)
. = TRUE // So we don't fire a laser as well.
switch(a_intent)
if(I_DISARM) // Side gun
electric_defense(A)
if(I_HURT) // Rockets
launch_rockets(A)
if(I_GRAB) // Micro-singulo
launch_microsingularity(A)
#define ELECTRIC_ZAP_POWER 20000
// Charges a tesla shot, while emitting a dangerous electric field. The exosuit is immune to electric damage while this is ongoing.
// It also briefly blinds anyone looking directly at the mech without flash protection.
/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced/proc/electric_defense(atom/target)
set waitfor = FALSE
// Temporary immunity to shock to avoid killing themselves with their own attack.
var/old_shock_resist = shock_resist
shock_resist = 1
// Make the energy ball. This is purely visual since the tesla ball is hyper-deadly.
energy_ball = new(loc)
energy_ball.adjust_scale(0.5)
energy_ball.orbit(src, 32, TRUE, 1 SECOND)
visible_message(span("warning", "\The [src] creates \an [energy_ball] around itself!"))
playsound(src.loc, 'sound/effects/lightning_chargeup.ogg', 100, 1, extrarange = 30)
// Shock nearby things that aren't ourselves.
for(var/i = 1 to 10)
energy_ball.adjust_scale(0.5 + (i/10))
energy_ball.set_light(i/2, i/2, "#0000FF")
for(var/thing in range(3, src))
// This is stupid because mechs are stupid and not mobs.
if(isliving(thing))
var/mob/living/L = thing
if(L == src)
continue
if(L.stat)
continue // Otherwise it can get pretty laggy if there's loads of corpses around.
L.inflict_shock_damage(i * 2)
if(L && L.has_AI()) // Some mobs delete themselves when dying.
L.ai_holder.react_to_attack(src)
else if(istype(thing, /obj/mecha))
var/obj/mecha/M = thing
M.take_damage(i * 2, "energy") // Mechs don't have a concept for siemens so energy armor check is the best alternative.
sleep(1 SECOND)
// Shoot a tesla bolt, and flashes people who are looking at the mecha without sufficent eye protection.
visible_message(span("warning", "\The [energy_ball] explodes in a flash of light, sending a shock everywhere!"))
playsound(src.loc, 'sound/effects/lightningbolt.ogg', 100, 1, extrarange = 30)
tesla_zap(src.loc, 5, ELECTRIC_ZAP_POWER, FALSE)
for(var/mob/living/L in viewers(src))
if(L == src)
continue
var/dir_towards_us = get_dir(L, src)
if(L.dir && L.dir & dir_towards_us)
to_chat(L, span("danger", "The flash of light blinds you briefly."))
L.flash_eyes(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = TRUE)
// Get rid of our energy ball.
energy_ball.stop_orbit()
qdel(energy_ball)
sleep(1 SECOND)
// Resist resistance to old value.
shock_resist = old_shock_resist // Not using initial() in case the value gets modified by an admin or something.
#undef ELECTRIC_ZAP_POWER
/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced/proc/launch_rockets(atom/target)
set waitfor = FALSE
// Telegraph our next move.
Beam(target, icon_state = "sat_beam", time = 3.5 SECONDS, maxdistance = INFINITY)
visible_message(span("warning", "\The [src] deploys a missile rack!"))
playsound(src, 'sound/effects/turret/move1.wav', 50, 1)
sleep(0.5 SECONDS)
for(var/i = 1 to 3)
if(target) // Might get deleted in the meantime.
var/turf/T = get_turf(target)
if(T)
visible_message(span("warning", "\The [src] fires a rocket into the air!"))
playsound(src, 'sound/weapons/rpg.ogg', 70, 1)
face_atom(T)
var/obj/item/projectile/arc/explosive_rocket/rocket = new(loc)
rocket.old_style_target(T, src)
rocket.fire()
sleep(1 SECOND)
visible_message(span("warning", "\The [src] retracts the missile rack."))
playsound(src, 'sound/effects/turret/move2.wav', 50, 1)
// Arcing rocket projectile that produces a weak explosion when it lands.
// Shouldn't punch holes in the floor, but will still hurt.
/obj/item/projectile/arc/explosive_rocket
name = "rocket"
icon_state = "mortar"
/obj/item/projectile/arc/explosive_rocket/on_impact(turf/T)
new /obj/effect/explosion(T) // Weak explosions don't produce this on their own, apparently.
explosion(T, 0, 0, 2, adminlog = FALSE)
/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced/proc/launch_microsingularity(atom/target)
var/turf/T = get_turf(target)
visible_message(span("warning", "\The [src] fires an energetic sphere into the air!"))
playsound(src, 'sound/weapons/Laser.ogg', 50, 1)
face_atom(T)
var/obj/item/projectile/arc/microsingulo/sphere = new(loc)
sphere.old_style_target(T, src)
sphere.fire()
/obj/item/projectile/arc/microsingulo
name = "micro singularity"
icon_state = "bluespace"
/obj/item/projectile/arc/microsingulo/on_impact(turf/T)
new /obj/effect/temporary_effect/pulse/microsingulo(T)
/obj/effect/temporary_effect/pulse/microsingulo
name = "micro singularity"
desc = "It's sucking everything in!"
icon = 'icons/obj/objects.dmi'
icon_state = "bhole3"
light_range = 4
light_power = 5
light_color = "#2ECCFA"
pulses_remaining = 10
pulse_delay = 0.5 SECONDS
var/pull_radius = 3
var/pull_strength = STAGE_THREE
/obj/effect/temporary_effect/pulse/microsingulo/on_pulse()
for(var/atom/A in range(pull_radius, src))
A.singularity_pull(src, pull_strength)
// The Advanced Dark Gygax's AI.
// The mob has three special attacks, based on the current intent.
// This AI choose the appropiate intent for the situation, and tries to ensure it doesn't kill itself by firing missiles at its feet.
/datum/ai_holder/simple_mob/intentional/adv_dark_gygax
conserve_ammo = TRUE // Might help avoid 'I shoot the wall forever' cheese.
var/closest_desired_distance = 1 // Otherwise run up to them to be able to potentially shock or punch them.
var/electric_defense_radius = 3 // How big to assume electric defense's area is.
var/microsingulo_radius = 3 // Same but for microsingulo pull.
var/rocket_explosive_radius = 2 // Explosion radius for the rockets.
var/electric_defense_threshold = 2 // How many non-targeted people are needed in close proximity before electric defense is viable.
var/microsingulo_threshold = 2 // Similar to above, but uses an area around the target.
// Used to control the mob's positioning based on which special attack it has done.
// Note that the intent will not change again until the next special attack is about to happen.
/datum/ai_holder/simple_mob/intentional/adv_dark_gygax/on_engagement(atom/A)
// Make the AI backpeddle if using an AoE special attack.
var/list/risky_intents = list(I_GRAB, I_HURT) // Mini-singulo and missiles.
if(holder.a_intent in risky_intents)
var/closest_distance = 1
switch(holder.a_intent) // Plus one just in case.
if(I_HURT)
closest_distance = rocket_explosive_radius + 1
if(I_GRAB)
closest_distance = microsingulo_radius + 1
if(get_dist(holder, A) <= closest_distance)
holder.IMove(get_step_away(holder, A, closest_distance))
// Otherwise get up close and personal.
else if(get_dist(holder, A) > closest_desired_distance)
holder.IMove(get_step_towards(holder, A))
// Changes the mob's intent, which controls which special attack is used.
// I_DISARM causes Electric Defense, I_GRAB causes Micro-Singularity, and I_HURT causes Missile Barrage.
/datum/ai_holder/simple_mob/intentional/adv_dark_gygax/pre_special_attack(atom/A)
if(isliving(A))
var/mob/living/target = A
// If we're surrounded, Electric Defense will quickly fix that.
var/tally = 0
var/list/potential_targets = list_targets() // Returns list of mobs and certain objects like mechs and turrets.
for(var/atom/movable/AM in potential_targets)
if(get_dist(holder, AM) > electric_defense_radius)
continue
if(!can_attack(AM))
continue
tally++
// Should we shock them?
if(tally >= electric_defense_threshold || get_dist(target, holder) <= electric_defense_radius)
holder.a_intent = I_DISARM
return
// Otherwise they're a fair distance away and we're not getting mobbed up close.
// See if we should use missiles or microsingulo.
tally = 0 // Let's recycle the var.
for(var/atom/movable/AM in potential_targets)
if(get_dist(target, AM) > microsingulo_radius) // Deliberately tests distance between target and nearby targets and not the holder.
continue
if(!can_attack(AM))
continue
if(AM.anchored) // Microsingulo doesn't do anything to anchored things.
tally--
else
tally++
// Lots of people means minisingulo would be more useful.
if(tally >= microsingulo_threshold)
holder.a_intent = I_GRAB
else // Otherwise use rockets.
holder.a_intent = I_HURT
else
if(get_dist(holder, A) >= rocket_explosive_radius + 1)
holder.a_intent = I_HURT // Fire rockets if it's an obj/turf.
else
holder.a_intent = I_DISARM // Electricity might not work but it's safe up close.
=======
// Stronger than a regular Dark Gygax, this one has three special attacks, based on intents.
// First special attack launches three arcing rockets at the current target.
// Second special attack fires a projectile that creates a short-lived microsingularity that pulls in everything nearby. Magboots can protect from this.
@@ -610,5 +345,4 @@
if(get_dist(holder, A) >= rocket_explosive_radius + 1)
holder.a_intent = I_HURT // Fire rockets if it's an obj/turf.
else
holder.a_intent = I_DISARM // Electricity might not work but it's safe up close.
>>>>>>> 1afbe8d... Explorer Update - Cataloguers (#6016)
holder.a_intent = I_DISARM // Electricity might not work but it's safe up close.
@@ -1,58 +1,3 @@
<<<<<<< HEAD
// Durands are slow, tanky, beefy, and hit really hard.
// They can also root themselves to become even tankier.
// The AI doesn't do this currently.
/mob/living/simple_mob/mechanical/mecha/combat/durand
name = "durand"
desc = "An aging combat exosuit utilized by many corporations. It was originally developed to fight in the First Contact War."
icon_state = "durand"
movement_cooldown = 10
wreckage = /obj/structure/loot_pile/mecha/durand
maxHealth = 400
deflect_chance = 20
armor = list(
"melee" = 50,
"bullet" = 35,
"laser" = 15,
"energy" = 10,
"bomb" = 20,
"bio" = 100,
"rad" = 100
)
melee_damage_lower = 40
melee_damage_upper = 40
base_attack_cooldown = 2 SECONDS
projectiletype = /obj/item/projectile/beam/heavylaser
var/defense_mode = FALSE
var/defense_deflect = 35
/mob/living/simple_mob/mechanical/mecha/combat/durand/proc/set_defense_mode(new_mode)
defense_mode = new_mode
deflect_chance = defense_mode ? defense_deflect : initial(deflect_chance)
to_chat(src, span("notice", "You [defense_mode ? "en" : "dis"]able defense mode."))
/mob/living/simple_mob/mechanical/mecha/combat/durand/SelfMove(turf/n, direct)
if(defense_mode)
to_chat(src, span("warning", "You are in defense mode, you cannot move."))
return FALSE
return ..()
// So players can toggle it too.
/mob/living/simple_mob/mechanical/mecha/combat/durand/verb/toggle_defense_mode()
set name = "Toggle Defense Mode"
set desc = "Toggles a special mode which makes you immobile and much more resilient."
set category = "Abilities"
set_defense_mode(!defense_mode)
// Variant that starts in defense mode, perhaps for PoIs.
/mob/living/simple_mob/mechanical/mecha/combat/durand/defensive/Initialize()
set_defense_mode(TRUE)
return ..()
=======
// Durands are slow, tanky, beefy, and hit really hard.
// They can also root themselves to become even tankier.
// The AI doesn't do this currently.
@@ -119,5 +64,4 @@
// Variant that starts in defense mode, perhaps for PoIs.
/mob/living/simple_mob/mechanical/mecha/combat/durand/defensive/Initialize()
set_defense_mode(TRUE)
return ..()
>>>>>>> 1afbe8d... Explorer Update - Cataloguers (#6016)
return ..()
@@ -1,31 +1,3 @@
<<<<<<< HEAD
// Ranged, and capable of flight.
/mob/living/simple_mob/mechanical/mecha/hoverpod
name = "hover pod"
desc = "Stubby and round, this space-capable craft is an ancient favorite. It has a jury-rigged welder-laser."
icon_state = "engineering_pod"
movement_sound = 'sound/machines/hiss.ogg'
wreckage = /obj/structure/loot_pile/mecha/hoverpod
maxHealth = 150
hovering = TRUE // Can fly.
projectiletype = /obj/item/projectile/beam
base_attack_cooldown = 2 SECONDS
var/datum/effect/effect/system/ion_trail_follow/ion_trail
/mob/living/simple_mob/mechanical/mecha/hoverpod/manned
pilot_type = /mob/living/simple_mob/humanoid/merc/ranged
/mob/living/simple_mob/mechanical/mecha/hoverpod/Initialize()
ion_trail = new /datum/effect/effect/system/ion_trail_follow()
ion_trail.set_up(src)
ion_trail.start()
return ..()
/mob/living/simple_mob/mechanical/mecha/hoverpod/Process_Spacemove(var/check_drift = 0)
=======
// Ranged, and capable of flight.
/datum/category_item/catalogue/technology/hoverpod
@@ -65,6 +37,5 @@
ion_trail.start()
return ..()
/mob/living/simple_mob/mechanical/mecha/hoverpod/Process_Spacemove(var/check_drift = 0)
>>>>>>> 1afbe8d... Explorer Update - Cataloguers (#6016)
/mob/living/simple_mob/mechanical/mecha/hoverpod/Process_Spacemove(var/check_drift = 0)
return TRUE
-4
View File
@@ -1522,15 +1522,11 @@
#include "code\modules\blob2\overmind\types.dm"
#include "code\modules\busy_space\air_traffic.dm"
#include "code\modules\busy_space\loremaster.dm"
<<<<<<< HEAD:vorestation.dme
#include "code\modules\busy_space_vr\organizations.dm"
=======
#include "code\modules\busy_space\organizations.dm"
#include "code\modules\catalogue\atoms.dm"
#include "code\modules\catalogue\catalogue_data.dm"
#include "code\modules\catalogue\cataloguer.dm"
#include "code\modules\catalogue\cataloguer_visuals.dm"
>>>>>>> 1afbe8d... Explorer Update - Cataloguers (#6016):polaris.dme
#include "code\modules\client\client defines.dm"
#include "code\modules\client\client procs.dm"
#include "code\modules\client\movement.dm"