mirror of
https://github.com/Sandstorm-Station/Sandstorm-Station-13.git
synced 2026-07-17 11:15:35 +01:00
b7a1e1e0b2
* changes * changes * changes * changes * changes * changes * removes combat mode effects * changes * changes * changes * changes * changes * changes * changes * less awful * baton change * whew * okay * math fix * framework * Oh Boy * fixes * conflict gone * whew * yell wip * ripping off my own code * fixes * almost compiling * e * auto * hacky * local testing time * modifications * sigh * Yelling works * attempt examinate * fix * yelling * ok * it works * it works. * woo * let's make this work * Update PubbyStation.dmm * Incinerator mapping tweak * qm can announce to station * blue airlocks (maybe will remove that) * changes to HoP access he couldn't access cargo already, now it's just polished so they don't have weird cargo access that they can't use * changes Box HoP console to request only (like in the other maps) * wtf why is this here * and WHY is this here too??? * Revert "and WHY is this here too???" This reverts commit 424a53773296eaf261c97992c618c580449f6031. * Revert "wtf why is this here" This reverts commit 59fdca38b55ce97ab5bdf28cbea7fb3b9915474e. * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Automatic changelog compile [ci skip] * Update PubbyStation.dmm * Adds plushies from various sources/custom made. A patch you didn't know you needed. * More code. Shouldn't break anything. We'll see if it does. * Adds a rolled up newspaper sprite * Adds a child item to the telebaton identical stats for the future but different looks. * And a recipe. You attach a newspaper to a telebaton with tape. * all the stuff to add pod to code * The actual map * Automatic changelog compile [ci skip] * A * Automatic changelog generation for PR #14822 [ci skip] * Automatic changelog generation for PR #14895 [ci skip] * Automatic changelog generation for PR #14861 [ci skip] * Automatic changelog generation for PR #14893 [ci skip] * Automatic changelog generation for PR #14899 [ci skip] * Automatic changelog generation for PR #14883 [ci skip] * Okay, let's try this again. I don't like you, you don't like me, can we please just get along? * e * Automatic changelog generation for PR #14904 [ci skip] * Automatic changelog compile [ci skip] Co-authored-by: silicons <2003111+silicons@users.noreply.github.com> Co-authored-by: bunny232 <bunnyracer23@yahoo.com> Co-authored-by: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Co-authored-by: Changelogs <action@github.com> Co-authored-by: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Co-authored-by: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Co-authored-by: Lin <linzolle@gmail.com> Co-authored-by: CitadelStationBot <citadelstationcommunity@gmail.com>
86 lines
5.6 KiB
Plaintext
86 lines
5.6 KiB
Plaintext
/// Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields.
|
|
/// Wrapper for do_run_block(). The arguments on that means the same as for this.
|
|
#define mob_check_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\
|
|
do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
|
|
|
|
/// Runs a block "sequence", effectively checking and then doing effects if necessary.
|
|
/// Wrapper for do_run_block(). The arguments on that means the same as for this.
|
|
#define mob_run_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\
|
|
do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list)
|
|
|
|
// Don't ask why there's block_parry.dm and this. This is for the run_block() system, which is the "parent" system of the directional block and parry systems.
|
|
|
|
/// Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS.
|
|
/// Attack was not blocked
|
|
#define BLOCK_NONE NONE
|
|
/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION!
|
|
#define BLOCK_SUCCESS (1<<1)
|
|
|
|
/// The below are for "metadata" on "how" the attack was blocked.
|
|
|
|
/// Attack was and should be redirected according to list argument REDIRECT_METHOD (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!)
|
|
#define BLOCK_SHOULD_REDIRECT (1<<2)
|
|
/// Attack was redirected (whether by us or by SHOULD_REDIRECT flagging for automatic handling)
|
|
#define BLOCK_REDIRECTED (1<<3)
|
|
/// Attack was blocked by something like a shield.
|
|
#define BLOCK_PHYSICAL_EXTERNAL (1<<4)
|
|
/// Attack was blocked by something worn on you.
|
|
#define BLOCK_PHYSICAL_INTERNAL (1<<5)
|
|
/// Attack outright missed because the target dodged. Should usually be combined with redirection passthrough or something (see martial arts)
|
|
#define BLOCK_TARGET_DODGED (1<<7)
|
|
/// Meta-flag for run_block/do_run_block : By default, BLOCK_SUCCESS tells do_run_block() to assume the attack is completely blocked and not continue the block chain. If this is present, it will continue to check other items in the chain rather than stopping.
|
|
#define BLOCK_CONTINUE_CHAIN (1<<8)
|
|
/// Attack should change the amount of damage incurred. This means something calling run_block() has to handle it!
|
|
#define BLOCK_SHOULD_CHANGE_DAMAGE (1<<9)
|
|
/// Attack should scale by this percent, 0 for no block and 100 for full blocked
|
|
#define BLOCK_SHOULD_PARTIAL_MITIGATE (1<<10)
|
|
|
|
/// For keys in associative list/block_return as we don't want to saturate our (somewhat) limited flags.
|
|
#define BLOCK_RETURN_REDIRECT_METHOD "REDIRECT_METHOD"
|
|
/// Pass through victim
|
|
#define REDIRECT_METHOD_PASSTHROUGH "passthrough"
|
|
/// Deflect at randomish angle
|
|
#define REDIRECT_METHOD_DEFLECT "deflect"
|
|
/// reverse 180 angle, basically (as opposed to "realistic" wall reflections)
|
|
#define REDIRECT_METHOD_REFLECT "reflect"
|
|
/// "do not taser the bad man with the desword" - actually aims at the firer/attacker rather than just reversing
|
|
#define REDIRECT_METHOD_RETURN_TO_SENDER "no_you"
|
|
|
|
/// These keys are generally only applied to the list if real_attack is FALSE. Used incase we want to make "smarter" mob AI in the future or something.
|
|
/// Tells the caller how likely from 0 (none) to 100 (always) we are to reflect energy projectiles
|
|
#define BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE "reflect_projectile_chance"
|
|
/// Tells the caller how likely we are to block attacks from 0 to 100 in general
|
|
#define BLOCK_RETURN_NORMAL_BLOCK_CHANCE "normal_block_chance"
|
|
/// Tells the caller about how many hits we can soak on average before our blocking fails.
|
|
#define BLOCK_RETURN_BLOCK_CAPACITY "block_capacity"
|
|
/// Tells the caller we got blocked by active directional block.
|
|
#define BLOCK_RETURN_ACTIVE_BLOCK "active_block"
|
|
/// Tells the caller our damage mitigation for their attack.
|
|
#define BLOCK_RETURN_ACTIVE_BLOCK_DAMAGE_MITIGATED "damage_mitigated"
|
|
/// For [BLOCK_CHANGE_DAMAGE]. Set damage to this.
|
|
#define BLOCK_RETURN_SET_DAMAGE_TO "set_damage_to"
|
|
/// For [BLOCK_SHOULD_PARTIAL_MITIGATE]. Percentage mitigation.
|
|
#define BLOCK_RETURN_MITIGATION_PERCENT "partial_mitigation"
|
|
/// Used internally by run_parry proc, use on an on_active_parry() proc to override parrying efficiency.
|
|
#define BLOCK_RETURN_OVERRIDE_PARRY_EFFICIENCY "override_parry_efficiency"
|
|
/// Used internally by run_parry proc, use on an on_active_parry() proc to prevent counterattacks
|
|
#define BLOCK_RETURN_FORCE_NO_PARRY_COUNTERATTACK "no_parry_counterattack"
|
|
/// Always set to 100 by run_block() if BLOCK_SUCCESS is in return value. Otherwise, defaults to mitigation percent if not set. Used by projectile/proc/on_hit().
|
|
#define BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE "projectile_block_percentage"
|
|
|
|
/// Default if the above isn't set in the list.
|
|
#define DEFAULT_REDIRECT_METHOD_PROJECTILE REDIRECT_METHOD_DEFLECT
|
|
|
|
/// Block priorities. Higher means it's checked sooner.
|
|
// THESE MUST NEVER BE 0! Block code uses ! instead of isnull for the speed boost.
|
|
#define BLOCK_PRIORITY_ACTIVE_BLOCK 200
|
|
#define BLOCK_PRIORITY_HELD_ITEM 100
|
|
#define BLOCK_PRIORITY_WEAR_SUIT 75
|
|
//SKYRAT EDIT
|
|
#define BLOCK_PRIORITY_CLOTHING 50
|
|
#define BLOCK_PRIORITY_UNIFORM 25
|
|
#define BLOCK_PRIORITY_UNDERWEAR 20
|
|
//SKYRAT EDIT END
|
|
|
|
#define BLOCK_PRIORITY_DEFAULT BLOCK_PRIORITY_HELD_ITEM
|