mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-26 10:03:45 +00:00
Species use a list for unarmed attack types
This commit is contained in:
@@ -5,8 +5,7 @@
|
||||
|
||||
default_language = "Xenomorph"
|
||||
language = "Hivemind"
|
||||
unarmed_type = /datum/unarmed_attack/claws/strong
|
||||
secondary_unarmed_type = /datum/unarmed_attack/bite/strong
|
||||
unarmed_type = list(/datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong)
|
||||
hud_type = /datum/hud_data/alien
|
||||
rarity_value = 3
|
||||
|
||||
|
||||
@@ -95,10 +95,14 @@
|
||||
return
|
||||
|
||||
// See if they can attack, and which attacks to use.
|
||||
var/datum/unarmed_attack/attack = H.species.unarmed
|
||||
if(!attack.is_usable(H))
|
||||
attack = H.species.secondary_unarmed
|
||||
if(!attack.is_usable(H))
|
||||
var/datum/unarmed_attack/attack = null
|
||||
for(var/datum/unarmed_attack/u_attack in H.species.unarmed)
|
||||
if(!u_attack.is_usable(H, src))
|
||||
continue
|
||||
else
|
||||
attack = u_attack
|
||||
break
|
||||
if(!attack)
|
||||
return 0
|
||||
|
||||
var/damage = rand(1, 5)
|
||||
|
||||
@@ -12,17 +12,16 @@
|
||||
var/prone_icon // If set, draws this from icobase when mob is prone.
|
||||
var/eyes = "eyes_s" // Icon for eyes.
|
||||
|
||||
var/primitive // Lesser form, if any (ie. monkey for humans)
|
||||
var/tail // Name of tail image in species effects icon file.
|
||||
var/datum/unarmed_attack/unarmed // For empty hand harm-intent attack
|
||||
var/datum/unarmed_attack/secondary_unarmed // For empty hand harm-intent attack if the first fails.
|
||||
var/primitive // Lesser form, if any (ie. monkey for humans)
|
||||
var/tail // Name of tail image in species effects icon file.
|
||||
var/datum/unarmed_attack/list/unarmed = null // For empty hand harm-intent attack
|
||||
var/datum/unarmed_attack/secondary_unarmed // For empty hand harm-intent attack if the first fails.
|
||||
var/datum/hud_data/hud
|
||||
var/hud_type
|
||||
var/slowdown = 0
|
||||
var/gluttonous // Can eat some mobs. 1 for monkeys, 2 for people.
|
||||
var/rarity_value = 1 // Relative rarity/collector value for this species. Only used by ninja and cultists atm.
|
||||
var/unarmed_type = /datum/unarmed_attack
|
||||
var/secondary_unarmed_type = /datum/unarmed_attack/bite
|
||||
var/unarmed_type = list(/datum/unarmed_attack, /datum/unarmed_attack/bite)
|
||||
|
||||
var/language // Default racial language, if any.
|
||||
// Default language is used when 'say' is used without modifiers.
|
||||
@@ -98,8 +97,9 @@
|
||||
else
|
||||
hud = new()
|
||||
|
||||
if(unarmed_type) unarmed = new unarmed_type()
|
||||
if(secondary_unarmed_type) secondary_unarmed = new secondary_unarmed_type()
|
||||
unarmed = list()
|
||||
for(var/u_type in unarmed_type)
|
||||
unarmed += new u_type()
|
||||
|
||||
/datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs.
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
name_plural = "Humans"
|
||||
language = "Sol Common"
|
||||
primitive = /mob/living/carbon/monkey
|
||||
unarmed_type = /datum/unarmed_attack/punch
|
||||
unarmed_type = list(/datum/unarmed_attack/punch, /datum/unarmed_attack/bite)
|
||||
|
||||
flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR
|
||||
|
||||
@@ -221,8 +221,7 @@
|
||||
deform = 'icons/mob/human_races/r_def_lizard.dmi'
|
||||
language = "Sinta'unathi"
|
||||
tail = "sogtail"
|
||||
unarmed_type = /datum/unarmed_attack/claws
|
||||
secondary_unarmed_type = /datum/unarmed_attack/bite/sharp
|
||||
unarmed_type = list(/datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
|
||||
primitive = /mob/living/carbon/monkey/unathi
|
||||
darksight = 3
|
||||
gluttonous = 1
|
||||
@@ -249,8 +248,7 @@
|
||||
deform = 'icons/mob/human_races/r_def_tajaran.dmi'
|
||||
language = "Siik'tajr"
|
||||
tail = "tajtail"
|
||||
unarmed_type = /datum/unarmed_attack/claws
|
||||
secondary_unarmed_type = /datum/unarmed_attack/bite/sharp
|
||||
unarmed_type = list(/datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
|
||||
darksight = 8
|
||||
|
||||
cold_level_1 = 200 //Default 260
|
||||
@@ -276,7 +274,7 @@
|
||||
eyes = "skrell_eyes_s"
|
||||
language = "Skrellian"
|
||||
primitive = /mob/living/carbon/monkey/skrell
|
||||
unarmed_type = /datum/unarmed_attack/punch
|
||||
unarmed_type = list(/datum/unarmed_attack/punch)
|
||||
|
||||
flags = IS_WHITELISTED | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR
|
||||
|
||||
@@ -292,8 +290,7 @@
|
||||
deform = 'icons/mob/human_races/r_def_vox.dmi'
|
||||
default_language = "Vox-pidgin"
|
||||
language = "Galactic Common"
|
||||
unarmed_type = /datum/unarmed_attack/claws/strong
|
||||
secondary_unarmed_type = /datum/unarmed_attack/bite/strong
|
||||
unarmed_type = list(/datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong)
|
||||
rarity_value = 2
|
||||
|
||||
speech_sounds = list('sound/voice/shriek1.ogg')
|
||||
@@ -380,8 +377,7 @@
|
||||
icobase = 'icons/mob/human_races/r_diona.dmi'
|
||||
deform = 'icons/mob/human_races/r_def_plant.dmi'
|
||||
language = "Rootspeak"
|
||||
unarmed_type = /datum/unarmed_attack/diona
|
||||
secondary_unarmed_type = null //Does a walking mass of dionaea even have jaws, as we understand them?
|
||||
unarmed_type = list(/datum/unarmed_attack/diona)
|
||||
primitive = /mob/living/carbon/alien/diona
|
||||
slowdown = 7
|
||||
rarity_value = 3
|
||||
@@ -447,8 +443,7 @@
|
||||
icobase = 'icons/mob/human_races/r_machine.dmi'
|
||||
deform = 'icons/mob/human_races/r_machine.dmi'
|
||||
language = "Tradeband"
|
||||
unarmed_type = /datum/unarmed_attack/punch
|
||||
secondary_unarmed_type = null
|
||||
unarmed_type = list(/datum/unarmed_attack/punch)
|
||||
rarity_value = 2
|
||||
|
||||
eyes = "blank_eyes"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/sharp = 0
|
||||
var/edge = 0
|
||||
|
||||
/datum/unarmed_attack/proc/is_usable(var/mob/living/carbon/human/user)
|
||||
/datum/unarmed_attack/proc/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/victim)
|
||||
if(user.restrained())
|
||||
return 0
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
sharp = 1
|
||||
edge = 1
|
||||
|
||||
/datum/unarmed_attack/bite/is_usable(var/mob/living/carbon/human/user)
|
||||
/datum/unarmed_attack/bite/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/victim)
|
||||
if (user.wear_mask && istype(user.wear_mask, /obj/item/clothing/mask/muzzle))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -146,7 +146,15 @@
|
||||
help_shake_act(M)
|
||||
else
|
||||
if (M.a_intent == "hurt")
|
||||
var/datum/unarmed_attack/attack = M.species.unarmed
|
||||
var/datum/unarmed_attack/attack = null
|
||||
for(var/datum/unarmed_attack/u_attack in M.species.unarmed)
|
||||
if(!u_attack.is_usable(M, src))
|
||||
continue
|
||||
else
|
||||
attack = u_attack
|
||||
break
|
||||
if(!attack)
|
||||
return 0
|
||||
if ((prob(75) && health > 0))
|
||||
visible_message("\red <B>[M] [pick(attack.attack_verb)]ed [src]!</B>")
|
||||
|
||||
@@ -284,4 +292,4 @@
|
||||
|
||||
message = capitalize(trim_left(message))
|
||||
|
||||
..(message, speaking, verb, alt_name, italics, message_range, used_radios)
|
||||
..(message, speaking, verb, alt_name, italics, message_range, used_radios)
|
||||
|
||||
Reference in New Issue
Block a user