Unathi alt language and more fixes (#1299)

-added an alt unathi language, at jackboot's request
-added an automatic shotgun weapon
-fixed rifles having the wrong delay when not wielded
-fixed non-lore friendly ipc limbs
-fixed #1292
-fix syndicate borgs not having the right assigned mind
This commit is contained in:
Alberyk
2016-12-25 20:51:15 +02:00
committed by skull132
parent f1897e2ffb
commit 871b2dc302
19 changed files with 111 additions and 18 deletions
+2
View File
@@ -35,6 +35,8 @@
#define LANGUAGE_TRADEBAND "Tradeband"
#define LANGUAGE_GUTTER "Gutter"
#define LANGUAGE_VAURCA "Hivenet"
#define LANGUAGE_AZAZIBA "Sinta'azaziba"
// Language flags.
#define WHITELISTED 1 // Language is available if the speaker is whitelisted.
#define RESTRICTED 2 // Language can only be acquired by spawning or an admin.
+5
View File
@@ -540,3 +540,8 @@
..()
mind.assigned_role = "Armalis"
mind.special_role = "Vox Raider"
/mob/living/silicon/robot/syndicate/mind_initialize()
..()
mind.assigned_role = "Syndicate Robot"
mind.special_role = "Mercenary"
-1
View File
@@ -68,7 +68,6 @@ obj/item/weapon/antag_spawner/borg_tele/spawn_antag(client/C, turf/T)
if (newname != "")
H.real_name = newname
H.name = H.real_name
H.mind.special_role = "Mercenary"
H << "<b>You are a syndicate cyborg, bound to help and follow the orders of the mercenaries that are deploying you. Remember to speak to the other mercenaries to know more about their plans, you are also able to change your name using the name pick command.</b>"
spawn(1)
+11
View File
@@ -203,6 +203,17 @@
/datum/language/resomi/get_random_name(gender)
return ..(gender, 1, 4, 1.5)
/datum/language/unathi_azaziba
name = LANGUAGE_AZAZIBA
desc = "A language of Moghes consisting of a combination of spoken word and gesticulation. While waning since Moghes entered the glactic stage, it enjoys popular use by Unathi that never fell to the Hegemony's cultural dominance."
speech_verb = "hisses"
ask_verb = "gestures"
exclaim_verb = "roars"
colour = "soghun_alt"
key = "p"
flags = WHITELISTED | NONVERBAL
syllables = list("azs","zis","zau","azua","skiu","zuakz","izo","aei","ki","kut","zo")
//Syllable Lists
/*
@@ -22,6 +22,11 @@
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_MINOR_CUT
spawn_flags = IS_RESTRICTED
stamina = 500 //Tireless automatons
stamina_recovery = 1
sprint_speed_factor = 0.3
exhaust_threshold = 0 //No oxyloss, so zero threshold
/datum/species/shadow/handle_death(var/mob/living/carbon/human/H)
spawn(1)
new /obj/effect/decal/cleanable/ash(H.loc)
@@ -10,6 +10,7 @@
default_language = "Ceti Basic"
language = "Cult"
name_language = "Cult"
unarmed_types = list(/datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/sharp)
darksight = 8
has_organ = list() //skeletons are empty shells for now, maybe we can add something in the future
@@ -39,7 +40,7 @@
breath_type = null
poison_type = null
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE | NO_MINOR_CUT
spawn_flags = IS_RESTRICTED
has_limbs = list(
@@ -40,7 +40,7 @@
brute_mod = 0.8
ethanol_resistance = 0.4
num_alternate_languages = 2
secondary_langs = list(LANGUAGE_UNATHI)
secondary_langs = list(LANGUAGE_UNATHI, LANGUAGE_AZAZIBA)
name_language = LANGUAGE_UNATHI
stamina = 120 // Unathi have the shortest but fastest sprint of all
sprint_speed_factor = 3.2
+1 -1
View File
@@ -38,7 +38,7 @@ var/global/datum/robolimb/basic_robolimb
icon = 'icons/mob/human_races/cyberlimbs/xion.dmi'
/datum/robolimb/ipc
company = "Morpheus Cyberkinetics"
company = "Hephaestus Integrated Limb"
desc = "This limb is simple and functional; no effort has been made to make it look human."
icon = 'icons/mob/human_races/cyberlimbs/ipc.dmi'
unavailable_at_chargen = 1
+12 -12
View File
@@ -2,74 +2,74 @@
/obj/item/organ/external/head/ipc
dislocated = -1
can_intake_reagents = 0
vital = 0
vital = 1 //because it is now hosting the posibrain
max_damage = 50 //made same as arm, since it is not vital
min_broken_damage = 30
encased = null
/obj/item/organ/external/head/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/chest/ipc
dislocated = -1
encased = null
/obj/item/organ/external/chest/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/groin/ipc
dislocated = -1
/obj/item/organ/external/groin/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/arm/ipc
dislocated = -1
/obj/item/organ/external/arm/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/arm/right/ipc
dislocated = -1
/obj/item/organ/external/arm/right/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/leg/ipc
dislocated = -1
/obj/item/organ/external/leg/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/leg/right/ipc
dislocated = -1
/obj/item/organ/external/leg/right/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/foot/ipc
dislocated = -1
/obj/item/organ/external/foot/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/foot/right/ipc
dislocated = -1
/obj/item/organ/external/foot/right/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/hand/ipc
dislocated = -1
/obj/item/organ/external/hand/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/hand/right/ipc
dislocated = -1
/obj/item/organ/external/hand/right/ipc/New()
robotize("Morpheus Cyberkinetics")
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/cell
@@ -372,3 +372,31 @@
/obj/item/ammo_magazine/d762/empty
initial_ammo = 0
/obj/item/ammo_magazine/assault_shotgun
name = "magazine (slug)"
icon = 'icons/obj/dragunov.dmi'
icon_state = "csmb"
caliber = "shotgun"
mag_type = MAGAZINE
ammo_type = /obj/item/ammo_casing/shotgun
max_ammo = 8
matter = list("metal" = 2880)
multiple_sprites = 1
/obj/item/ammo_magazine/assault_shotgun/shells
name = "magazine (shells)"
icon_state = "csm"
ammo_type = /obj/item/ammo_casing/shotgun/pellet
/obj/item/ammo_magazine/assault_shotgun/incendiary
name = "magazine (incendiary shells)"
icon_state = "csmi"
ammo_type = /obj/item/ammo_casing/shotgun/incendiary
matter = list(DEFAULT_WALL_MATERIAL = 3600)
/obj/item/ammo_magazine/assault_shotgun/stun
name = "magazine (stun shells)"
icon_state = "csms"
ammo_type = /obj/item/ammo_casing/shotgun/stunshell
matter = list(DEFAULT_WALL_MATERIAL = 2880, "glass" = 5760)
@@ -99,7 +99,7 @@
allowed_magazines = list(/obj/item/ammo_magazine/c762)
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="semiauto", burst=1, fire_delay=10, move_delay=null, burst_accuracy=-2, dispersion=null),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
list(mode_name="short bursts", burst=5, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1,-2,-2), dispersion=list(0.6, 1.0, 1.0, 1.0, 1.2))
)
@@ -161,7 +161,7 @@
burst_delay = 4
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, use_launcher=null, burst_accuracy=null, dispersion=null),
list(mode_name="semiauto", burst=1, fire_delay=10, move_delay=null, use_launcher=null, burst_accuracy=null, dispersion=null),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=6, use_launcher=null, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 0.6)),
list(mode_name="fire grenades", burst=null, fire_delay=null, move_delay=null, use_launcher=1, burst_accuracy=null, dispersion=null)
)
@@ -310,3 +310,38 @@
list(mode_name="single coil", burst=1, fire_delay=0, move_delay=null, use_launcher=null, burst_accuracy=null, dispersion=null),
list(mode_name="dual coil", burst=2, move_delay=8, accuracy = list(-2,-3), dispersion = list(2.0, 3.0))
)
/obj/item/weapon/gun/projectile/automatic/rifle/shotgun
name = "assault shotgun"
desc = "A experimental, semi-automatic combat shotgun, designed for boarding operations and law enforcement agencies."
icon = 'icons/obj/dragunov.dmi' //lazy but works fine
icon_state = "cshotgun"
item_state = "cshotgun"
contained_sprite = 1
w_class = 4
load_method = MAGAZINE
max_shells = 8
caliber = "shotgun"
magazine_type = /obj/item/ammo_magazine/assault_shotgun
allowed_magazines = list(/obj/item/ammo_magazine/assault_shotgun)
origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 4, TECH_ILLEGAL = 5)
slot_flags = SLOT_BACK
auto_eject = 1
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
recoil = 3
accuracy = -2
fire_delay = 10
recoil_wielded = 0
fire_delay_wielded = 6
accuracy_wielded = 0
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay= 10, move_delay=null, burst_accuracy=-2, dispersion=null),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0))
)
/obj/item/weapon/gun/projectile/automatic/rifle/shotgun/update_icon()
..()
icon_state = (ammo_magazine)? "cshotgun" : "cshotgun-empty"
+1
View File
@@ -92,6 +92,7 @@ h1.alert, h2.alert {color: #000000;}
.vaurca {color: #9e9e39;}
.soghun {color: #228B22;}
.solcom {color: #22228B;}
.soghun_alt {color: #024402;}
.changeling {color: #800080;}
.vox {color: #AA00AA;}
.rough {font-family: "Trebuchet MS", cursive, sans-serif;}