This commit is contained in:
Putnam
2021-05-21 18:52:16 -07:00
188 changed files with 6486 additions and 2384 deletions
+1
View File
@@ -51,3 +51,4 @@
#define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances
#define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment.
#define ORGAN_EDIBLE (1<<7) //is a snack? :D
#define ORGAN_SYNTHETIC_EMP (1<<6) //Synthetic organ affected by an EMP. Deteriorates over time.
+2
View File
@@ -83,6 +83,8 @@
#define COMSIG_ATOM_EXIT "atom_exit" //from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc)
#define COMPONENT_ATOM_BLOCK_EXIT 1
#define COMSIG_ATOM_EXITED "atom_exited" //from base of atom/Exited(): (atom/movable/exiting, atom/newloc)
/// From base of atom/wave_ex_act(): (datum/wave_explosion/explosion, args)
#define COMSIG_ATOM_WAVE_EX_ACT "atom_wave_ex_act"
///from base of atom/ex_act(): (severity, target)
#define COMSIG_ATOM_EX_ACT "atom_ex_act"
///from base of atom/emp_act(): (severity)
+86
View File
@@ -0,0 +1,86 @@
// THIS IS INSANITY
// These are how wave explosions track when there's not only one direction to keep track of (diagonals, etc)
#define WEX_DIR_NORTH NORTH
#define WEX_DIR_SOUTH SOUTH
#define WEX_DIR_EAST EAST
#define WEX_DIR_WEST WEST
#define WEX_ALLDIRS (WEX_DIR_NORTH | WEX_DIR_SOUTH | WEX_DIR_EAST | WEX_DIR_WEST)
/// Default explosion power to consider an explosion over
#define EXPLOSION_POWER_DEAD 2.5
/// Default explosion falloff
#define EXPLOSION_DEFAULT_FALLOFF_MULTIPLY 0.98
/// Default explosion constant falloff
#define EXPLOSION_DEFAULT_FALLOFF_SUBTRACT 5
/// Block amount at which point having 0 block resistance will result in a full block
#define EXPLOSION_POWER_NO_RESIST_THRESHOLD 5
/// Explosion power quantization
#define EXPLOSION_POWER_QUANTIZATION_ACCURACY 0.1
// [explosion_flags] variable on /atom
/// No blocking if we're not dense
#define EXPLOSION_FLAG_DENSITY_DEPENDENT (1<<0)
/// If we survive the explosion, we block ALL the power and ignore the results of wave_ex_act().
#define EXPLOSION_FLAG_HARD_OBSTACLE (1<<1)
// Standardized explosion powers
/// Maxcap
#define EXPLOSION_POWER_MAXCAP 500
/// erases shreds from explosions/item damage
#define EXPLOSION_POWER_ERASE_SHREDS 400
/// Gibs most mobs
#define EXPLOSION_POWER_NORMAL_MOB_GIB 400
// Walls
#define EXPLOSION_POWER_WALL_SCRAPE 400
#define EXPLOSION_POWER_WALL_DISMANTLE 300
#define EXPLOSION_POWER_WALL_MINIMUM_DISMANTLE 200
#define EXPLOSION_POWER_RWALL_SCRAPE 450
#define EXPLOSION_POWER_RWALL_DISMANTLE 400
#define EXPLOSION_POWER_RWALL_MINIMUM_DISMANTLE 300
// Floors
#define EXPLOSION_POWER_FLOOR_TILE_BREAK 50
#define EXPLOSION_POWER_FLOOR_MINIMUM_TURF_BREAK 125
#define EXPLOSION_POWER_FLOOR_TURF_BREAK_BONUS 225
#define EXPLOSION_POWER_FLOOR_TURF_BREAK 350
#define EXPLOSION_POWER_FLOOR_TURF_SCRAPE 425
#define EXPLOSION_POWER_FLOOR_SHIELDED_IMMUNITY 250
// Helpers
/// Explosion power to object damage (without taking into consideration armor)
#define EXPLOSION_POWER_STANDARD_SCALE_OBJECT_DAMAGE(power, multiplier) (power>500)?(10*(power**0.6)*multiplier):(0.1*(power**1.3)*multiplier)
/// Explosion power to object damage for hard obstacles
#define EXPLOSION_POWER_STANDARD_SCALE_HARD_OBSTACLE_DAMAGE(power, multiplier) (power>500)?(10*(power**0.6)*multiplier):(0.15*(power**1.3)*multiplier)
/// Explosion power to object damage for windows
#define EXPLOSION_POWER_STANDARD_SCALE_WINDOW_DAMAGE(power, multiplier) (power>500)?(10*(power**0.6)*multiplier):(0.2*(power**1.3)*multiplier)
/// Default brute damage to do to living things
#define EXPLOSION_POWER_STANDARD_SCALE_MOB_DAMAGE(power, multiplier) ((power / 2) * multiplier)
// Damage factors
/// Factor to multiply damage to a door by if it's open (and therefore not blocking the explosion)
#define EXPLOSION_DAMAGE_OPEN_DOOR_FACTOR 0.25
// Standardized explosion constant blocks
#define EXPLOSION_BLOCK_WINDOW 10
#define EXPLOSION_BLOCK_MACHINE 20
#define EXPLOSION_BLOCK_SPACE 20
#define EXPLOSION_BLOCK_REINFORCED_WINDOW 50
#define EXPLOSION_BLOCK_DENSE_FILLER 50
#define EXPLOSION_BLOCK_WALL 75
#define EXPLOSION_BLOCK_BLAST_PROOF 250
#define EXPLOSION_BLOCK_BOROSILICATE_WINDOW 250
#define EXPLOSION_BLOCK_EXTREME 250
// Standardized explosion factor blocks
#define EXPLOSION_DAMPEN_MACHINE 0.95
#define EXPLOSION_DAMPEN_SPACE 0.95
#define EXPLOSION_DAMPEN_WINDOW 0.95
#define EXPLOSION_DAMPEN_REINFORCED_WINDOW 0.9
#define EXPLOSION_DAMPEN_DENSE_FILLER 0.85
#define EXPLOSION_DAMPEN_WALL 0.8
#define EXPLOSION_DAMPEN_BOROSILICATE_WINDOW 0.65
#define EXPLOSION_DAMPEN_BLAST_PROOF 0.65
#define EXPLOSION_DAMPEN_EXTREME 0.5
+1
View File
@@ -77,6 +77,7 @@
#define PROJECTILE_HIT_THRESHHOLD_LAYER 2.75 //projectiles won't hit objects at or below this layer if possible
#define TABLE_LAYER 2.8
#define TRAY_LAYER 2.85
#define GATEWAY_UNDERLAY_LAYER 2.85
#define BELOW_OBJ_LAYER 2.9
#define LOW_ITEM_LAYER 2.95
//#define OBJ_LAYER 3 //For easy recordkeeping; this is a byond define
+1 -1
View File
@@ -180,6 +180,7 @@
#define FIRE_PRIORITY_PROJECTILES 200
#define FIRE_PRIORITY_TICKER 200
#define FIRE_PRIORITY_ATMOS_ADJACENCY 300
#define FIRE_PRIORITY_EXPLOSIONS 350
#define FIRE_PRIORITY_STATPANEL 390
#define FIRE_PRIORITY_CHAT 400
#define FIRE_PRIORITY_RUNECHAT 410
@@ -234,7 +235,6 @@
A.flags_1 &= ~OVERLAY_QUEUED_1;\
} while(FALSE)
/**
Create a new timer and add it to the queue.
* Arguments: