Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ports Polaris' changeling. #12370

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
32 changes: 32 additions & 0 deletions baystation12.dme
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,39 @@
#include "code\game\gamemodes\calamity\calamity.dm"
#include "code\game\gamemodes\changeling\changeling.dm"
#include "code\game\gamemodes\changeling\changeling_powers.dm"
#include "code\game\gamemodes\changeling\generic_equip_procs.dm"
#include "code\game\gamemodes\changeling\modularchangling.dm"
#include "code\game\gamemodes\changeling\powers\absorb.dm"
#include "code\game\gamemodes\changeling\powers\armblade.dm"
#include "code\game\gamemodes\changeling\powers\armor.dm"
#include "code\game\gamemodes\changeling\powers\bioelectrogenesis.dm"
#include "code\game\gamemodes\changeling\powers\blind_sting.dm"
#include "code\game\gamemodes\changeling\powers\boost_range.dm"
#include "code\game\gamemodes\changeling\powers\cryo_sting.dm"
#include "code\game\gamemodes\changeling\powers\deaf_sting.dm"
#include "code\game\gamemodes\changeling\powers\delayed_toxin_sting.dm"
#include "code\game\gamemodes\changeling\powers\digital_camo.dm"
#include "code\game\gamemodes\changeling\powers\electric_lockpick.dm"
#include "code\game\gamemodes\changeling\powers\endoarmor.dm"
#include "code\game\gamemodes\changeling\powers\enfeebling_string.dm"
#include "code\game\gamemodes\changeling\powers\engorged_glands.dm"
#include "code\game\gamemodes\changeling\powers\epinephrine_overdose.dm"
#include "code\game\gamemodes\changeling\powers\extract_dna_sting.dm"
#include "code\game\gamemodes\changeling\powers\fabricate_clothing.dm"
#include "code\game\gamemodes\changeling\powers\fake_death.dm"
#include "code\game\gamemodes\changeling\powers\fleshmend.dm"
#include "code\game\gamemodes\changeling\powers\hivemind.dm"
#include "code\game\gamemodes\changeling\powers\mimic_voice.dm"
#include "code\game\gamemodes\changeling\powers\panacea.dm"
#include "code\game\gamemodes\changeling\powers\rapid_regen.dm"
#include "code\game\gamemodes\changeling\powers\recursive_enhancement.dm"
#include "code\game\gamemodes\changeling\powers\respec.dm"
#include "code\game\gamemodes\changeling\powers\revive.dm"
#include "code\game\gamemodes\changeling\powers\self_respiration.dm"
#include "code\game\gamemodes\changeling\powers\shriek.dm"
#include "code\game\gamemodes\changeling\powers\silence_sting.dm"
#include "code\game\gamemodes\changeling\powers\transform.dm"
#include "code\game\gamemodes\changeling\powers\visible_camouflage.dm"
#include "code\game\gamemodes\cult\cult.dm"
#include "code\game\gamemodes\cult\cult_items.dm"
#include "code\game\gamemodes\cult\cult_structures.dm"
Expand Down
24 changes: 20 additions & 4 deletions code/__defines/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
#define I_GRAB "grab"
#define I_HURT "harm"

#define MOVE_INTENT_WALK "walk"
#define MOVE_INTENT_RUN "run"

//These are used Bump() code for living mobs, in the mob_bump_flag, mob_swap_flags, and mob_push_flags vars to determine whom can bump/swap with whom.
#define HUMAN 1
#define MONKEY 2
Expand Down Expand Up @@ -131,20 +134,19 @@
#define FLASH_PROTECTION_NONE 0
#define FLASH_PROTECTION_MODERATE 1
#define FLASH_PROTECTION_MAJOR 2
#define ANIMAL_SPAWN_DELAY round(config.respawn_delay / 6)
#define DRONE_SPAWN_DELAY round(config.respawn_delay / 3)

#define ANIMAL_SPAWN_DELAY round(config.respawn_delay / 6)
#define DRONE_SPAWN_DELAY round(config.respawn_delay / 3)

// Incapacitation flags, used by the mob/proc/incapacitated() proc
#define INCAPACITATION_NONE 0
#define INCAPACITATION_RESTRAINED 1
#define INCAPACITATION_BUCKLED_PARTIALLY 2
#define INCAPACITATION_BUCKLED_FULLY 4
#define INCAPACITATION_DISABLED 8

#define INCAPACITATION_DEFAULT (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_FULLY|INCAPACITATION_DISABLED)
#define INCAPACITATION_ALL (INCAPACITATION_RESTRAINED|INCAPACITATION_BUCKLED_PARTIALLY|INCAPACITATION_BUCKLED_FULLY|INCAPACITATION_DISABLED)
#define INCAPACITATION_ALL ~INCAPACITATION_NONE

#define MOB_PULL_NONE 0
#define MOB_PULL_SMALLER 1
Expand All @@ -158,4 +160,18 @@
#define TASTE_SENSITIVE 2 //anything below 7%
#define TASTE_NORMAL 1 //anything below 15%
#define TASTE_DULL 0.5 //anything below 30%
#define TASTE_NUMB 0.1 //anything below 150%
#define TASTE_NUMB 0.1 //anything below 150%

#define BP_L_FOOT "l_foot"
#define BP_R_FOOT "r_foot"
#define BP_L_LEG "l_leg"
#define BP_R_LEG "r_leg"
#define BP_L_HAND "l_hand"
#define BP_R_HAND "r_hand"
#define BP_L_ARM "l_arm"
#define BP_R_ARM "r_arm"
#define BP_HEAD "head"
#define BP_TORSO "torso"
#define BP_GROIN "groin"
#define BP_ALL list(BP_GROIN, BP_TORSO, BP_HEAD, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG)

2 changes: 2 additions & 0 deletions code/_onclick/hud/_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@
#define ui_borg_health "EAST-1:28,CENTER-1:13" //borgs have the health display where humans have the pressure damage indicator.
#define ui_alien_health "EAST-1:28,CENTER-1:13" //aliens have the health display where humans have the pressure damage indicator.

#define ui_ling_chemical_display "EAST-1:28,CENTER-3:15"

//Pop-up inventory
#define ui_shoes "WEST+1:8,SOUTH:5"

Expand Down
12 changes: 12 additions & 0 deletions code/_onclick/hud/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,11 @@
mymob.nutrition_icon.screen_loc = ui_nutrition
hud_elements |= mymob.nutrition_icon

mymob.ling_chem_display = new /obj/screen/ling/chems()
mymob.ling_chem_display.screen_loc = ui_ling_chemical_display
mymob.ling_chem_display.icon_state = "ling_chems"
hud_elements |= mymob.ling_chem_display

mymob.blind = new /obj/screen()
mymob.blind.icon = 'icons/mob/screen1_full.dmi'
mymob.blind.icon_state = "blackimageoverlay"
Expand Down Expand Up @@ -383,3 +388,10 @@
h_style = pick("Bedhead", "Bedhead 2", "Bedhead 3")
all_underwear.Cut()
regenerate_icons()

/obj/screen/ling
invisibility = 101

/obj/screen/ling/chems
name = "chemical storage"
icon_state = "power_display"
12 changes: 11 additions & 1 deletion code/game/antagonist/station/changeling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,14 @@
if(player.current.client.prefs.organ_data["torso"] == "cyborg") // Full synthetic.
return 0
return 1
return 0
return 0

/datum/antagonist/changeling/print_player_full(var/datum/mind/ply)
var/text = print_player_lite(ply)

if(ply.changeling)
var/datum/changeling/ling_datum = ply.changeling
text += " (had [ling_datum.max_geneticpoints] genomes)"
text += "<br>Bought [english_list(ling_datum.purchased_powers_history)]."

return text