Skip to content

Commit

Permalink
reduce building damage
Browse files Browse the repository at this point in the history
  • Loading branch information
higps committed Oct 4, 2023
1 parent a7c2ded commit 80916c9
Show file tree
Hide file tree
Showing 55 changed files with 335 additions and 120 deletions.
59 changes: 2 additions & 57 deletions boss_heavy_kommisarkrit.sp
Original file line number Diff line number Diff line change
Expand Up @@ -355,11 +355,11 @@ stock GiveBigJoey(client)
{
//TF2Attrib_SetByName(Weapon1, "fire rate bonus", 2.0);
TF2Attrib_SetByName(Weapon1, "maxammo primary increased", 2.5);
// TF2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.75);
TF2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.5);
//TF2Attrib_SetByName(Weapon1, "dmg penalty vs players", 0.65);
TF2Attrib_SetByName(Weapon1, "minigun spinup time decreased", 1.25);
TF2Attrib_SetByName(Weapon1, "mod weapon blocks healing", 1.0);
TF2Attrib_SetByName(Weapon1, "dmg penalty vs players", 1.5);
TF2Attrib_SetByName(Weapon1, "dmg penalty vs players", 1.25);

TF2Attrib_SetByName(Weapon1, "spread penalty", spreadpenalty);
}
Expand Down Expand Up @@ -387,58 +387,3 @@ public Action:Timer_Taunt_Cancel(Handle:timer, any:client)

}
}

// - Regular paints -
//set item tint RGB
// A Color Similar to Slate 3100495
// A Deep Commitment to Purple 8208497
// A Distinctive Lack of Hue 1315860
// A Mann's Mint 12377523
// After Eight 2960676
// Aged Moustache Grey 8289918
// An Extraordinary Abundance of Tinge 15132390
// Australium Gold 15185211
// Color No. 216-190-216 14204632
// Dark Salmon Injustice 15308410
// Drably Olive 8421376
// Indubitably Green 7511618
// Mann Co. Orange 13595446
// Muskelmannbraun 10843461
// Noble Hatter's Violet 5322826
// Peculiarly Drab Tincture 12955537
// Pink as Hell 16738740
// Radigan Conagher Brown 6901050
// The Bitter Taste of Defeat and Lime 3329330
// The Color of a Gentlemann's Business Pants 15787660
// Ye Olde Rustic Colour 8154199
// Zepheniah's Greed 4345659

// - Team colors -

// An Air of Debonair:
// set item tint RGB : 6637376
// set item tint RGB 2 : 2636109

// Balaclavas Are Forever
// set item tint RGB : 3874595
// set item tint RGB 2 : 1581885

// Cream Spirit
// set item tint RGB : 12807213
// set item tint RGB 2 : 12091445

// Operator's Overalls
// set item tint RGB : 4732984
// set item tint RGB 2 : 3686984

// Team Spirit
// set item tint RGB : 12073019
// set item tint RGB 2 : 5801378

// The Value of Teamwork
// set item tint RGB : 8400928
// set item tint RGB 2 : 2452877

// Waterlogged Lab Coat
// set item tint RGB : 11049612
// set item tint RGB 2 : 8626083
1 change: 1 addition & 0 deletions boss_pyro_skilltron.sp
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ stock GiveGiantPyro(client)
TF2Attrib_SetByName(Weapon1, "flame_speed", 3800.0);
TF2Attrib_SetByName(Weapon1, "mult airblast refire time", 0.25);
TF2Attrib_SetByName(Weapon1, "mod weapon blocks healing", 1.0);
TF2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.5);
// TF2Attrib_SetByName(Weapon1, "airblast cost decreased", 0.85);

}
Expand Down
1 change: 1 addition & 0 deletions boss_soldier_General_Crits.sp
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@ stock GiveGiantPyro(client)
TF2Attrib_SetByName(Weapon1, "projectile speed decreased", 1.1);
TF2Attrib_SetByName(Weapon1, "killstreak tier", 1.0);
TF2Attrib_SetByName(Weapon1, "Reload time increased", 1.75);
TF2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.5);
// TF2Attrib_SetByName(Weapon1, "fire rate bonus with reduced health", 0.15);
//TF2Attrib_SetByName(Weapon1, "mini rockets", 5.0);
//TF2Attrib_SetByName(Weapon1, "auto fires when full", 1.0);
Expand Down
2 changes: 1 addition & 1 deletion free_damage_flames_pyro_rocketman.sp
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ stock GiveGiantPyro(client)
TF2Attrib_SetByName(Weapon1, "maxammo primary increased", 2.5);
TF2Attrib_SetByName(Weapon1, "killstreak tier", 1.0);
// TF2Attrib_SetByName(Weapon1, "airblast pushback scale", 1.6);
TF2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.15);
TF2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.35);
TF2Attrib_SetByName(Weapon1, "flame_spread_degree", 5.0);
TF2Attrib_SetByName(Weapon1, "flame size bonus", 1.6);
TF2Attrib_SetByName(Weapon1, "flame_speed", 3600.0);
Expand Down
2 changes: 1 addition & 1 deletion free_damage_flames_pyro_spitfire.sp
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ stock GiveGiantPyro(client)
TF2Attrib_SetByName(Weapon2, "faster reload rate", 0.8);
TF2Attrib_SetByName(Weapon2, "weapon spread bonus", 0.75);
TF2Attrib_SetByName(Weapon2, "dmg penalty vs players", 1.2);
TF2Attrib_SetByName(Weapon2, "dmg penalty vs buildings", 0.4);
TF2Attrib_SetByName(Weapon2, "dmg penalty vs buildings", 0.5);
TF2Attrib_SetByName(Weapon2, "minicrit vs burning player", 1.0);
TF2Attrib_SetByName(Weapon2, "Set DamageType Ignite", 3.0);
}
Expand Down
2 changes: 1 addition & 1 deletion free_damage_flames_pyro_wamo.sp
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ stock GiveGiantPyro(client)
TF2Attrib_SetByName(Weapon1, "killstreak tier", 1.0);
//TF2Attrib_SetByName(Weapon1, "mod flamethrower back crit", 1.0);

TF2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.5);
TF2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.35);
TF2Attrib_SetByName(Weapon1, "flame_spread_degree", 8.0);
TF2Attrib_SetByName(Weapon1, "flame size bonus", 1.3);

Expand Down
2 changes: 1 addition & 1 deletion free_damage_flames_wizard_pyro_fire_wizard.sp
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ stock GiveGiantPyro(client)
TF2Attrib_SetByName(Weapon3, "melee range multiplier", 1.25);
TF2Attrib_SetByName(Weapon3, "speed_boost_on_hit", 1.0);
TF2Attrib_SetByName(Weapon3, "crit vs burning players", 1.0);

F2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.5);
TF2CustAttr_SetString(client, "Spell-Caster", "Spell=0 Cooldown=7.0 SpellOnCond=9 Cond=11");


Expand Down
2 changes: 1 addition & 1 deletion free_damage_grenades_demoman_LED.sp
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ stock GiveGiantDemoKnight(client)
TF2Attrib_SetByName(Weapon1, "Projectile speed increased", 1.4);
TF2Attrib_SetByName(Weapon1, "maxammo primary increased", 2.5);
TF2Attrib_SetByName(Weapon1, "killstreak tier", 1.0);
TF2Attrib_SetByName(Weapon1, "dmg bonus vs buildings", 0.25);
TF2Attrib_SetByName(Weapon1, "dmg bonus vs buildings", 0.5);

TF2Attrib_SetByName(Weapon1, "fire rate bonus", 0.75);
// TF2Attrib_SetByName(Weapon1, "mod use metal ammo type", 1.0);
Expand Down
1 change: 1 addition & 0 deletions free_damage_grenades_demoman_dreysidel.sp
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@ stock GiveGiantToofty(client)
TF2Attrib_SetByName(Weapon3, "faster reload rate", 3.75);
TF2Attrib_SetByName(Weapon3, "sticky arm time penalty", 0.5);
TF2Attrib_SetByName(Weapon3, "max pipebombs increased", 16.0);
F2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.5);
TF2Attrib_SetByName(Weapon3, "killstreak tier", 1.0);
TF2CustAttr_SetString(Weapon3, "reload full clip at once", "1.0");
}
Expand Down
251 changes: 251 additions & 0 deletions free_damage_grenades_demoman_raid.sp
Original file line number Diff line number Diff line change
@@ -0,0 +1,251 @@
#pragma semicolon 1
#include <sourcemod>
#include <tf2_stocks>
#include <tf2attributes>
#include <berobot_constants>
#include <berobot>
#include <tf_custom_attributes>

#define PLUGIN_VERSION "1.0"
#define ROBOT_NAME "Raid"
#define ROBOT_ROLE "Damage"
#define ROBOT_CLASS "Demoman"
#define ROBOT_SUBCLASS "Grenades"
#define ROBOT_DESCRIPTION "Rapid Short Range Iron Bomber"
#define ROBOT_TIPS "Rapid Short Iron Bomber"
#define ROBOT_ON_DEATH "Short Circuit and Airblast are good ways to deal with this robot"

#define GDEKNIGHT "models/bots/demo_boss/bot_demo_boss.mdl"
#define SPAWN "#mvm/giant_heavy/giant_heavy_entrance.wav"
#define DEATH "mvm/sentrybuster/mvm_sentrybuster_explode.wav"
#define LOOP "mvm/giant_demoman/giant_demoman_loop.wav"

#define LEFTFOOT ")mvm/giant_demoman/giant_demoman_step_01.wav"
#define LEFTFOOT1 ")mvm/giant_demoman/giant_demoman_step_03.wav"
#define RIGHTFOOT ")mvm/giant_demoman/giant_demoman_step_02.wav"
#define RIGHTFOOT1 ")mvm/giant_demoman/giant_demoman_step_04.wav"

public Plugin:myinfo =
{
name = "[TF2] Be the Giant Solar Demoknight",
author = "Erofix using the code from: Pelipoika, PC Gamer, Jaster and StormishJustice",
description = "Play as the Giant Demoknight from MvM",
version = PLUGIN_VERSION,
url = "www.sourcemod.com"
}

public OnPluginStart()
{
LoadTranslations("common.phrases");

RobotDefinition robot;
robot.name = ROBOT_NAME;
robot.role = ROBOT_ROLE;
robot.class = ROBOT_CLASS;
robot.subclass = ROBOT_SUBCLASS;
robot.shortDescription = ROBOT_DESCRIPTION;
robot.sounds.spawn = SPAWN;
robot.sounds.loop = LOOP;
robot.sounds.death = DEATH;
robot.deathtip = ROBOT_ON_DEATH;
robot.difficulty = ROBOT_DIFFICULTY_HARD;
AddRobot(robot, MakeSolar, PLUGIN_VERSION);

AddNormalSoundHook(BossMortar);
}

public Action:BossMortar(clients[64], &numClients, String:sample[PLATFORM_MAX_PATH], &entity, &channel, &Float:volume, &level, &pitch, &flags)
{
if (!IsValidClient(entity)) return Plugin_Continue;
if (!IsRobot(entity, ROBOT_NAME)) return Plugin_Continue;

if (strncmp(sample, "player/footsteps/", 17, false) == 0)
{
if (StrContains(sample, "1.wav", false) != -1)
{
EmitSoundToAll(LEFTFOOT, entity);
}
else if (StrContains(sample, "3.wav", false) != -1)
{
EmitSoundToAll(LEFTFOOT1, entity);
}
else if (StrContains(sample, "2.wav", false) != -1)
{
EmitSoundToAll(RIGHTFOOT, entity);
}
else if (StrContains(sample, "4.wav", false) != -1)
{
EmitSoundToAll(RIGHTFOOT1, entity);
}
return Plugin_Changed;
}
return Plugin_Continue;
}

public void OnPluginEnd()
{
RemoveRobot(ROBOT_NAME);
}

public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
{
// CreateNative("BeGiantDemoKnight_MakeSolar", Native_SetGiantDemoKnight);
// CreateNative("BeGiantDemoKnight_IsGiantDemoKnight", Native_IsGiantDemoKnight);
return APLRes_Success;
}

public OnMapStart()
{










}

public Action:SetModel(client, const String:model[])
{
if (IsValidClient(client) && IsPlayerAlive(client))
{
SetVariantString(model);
AcceptEntityInput(client, "SetCustomModel");

SetEntProp(client, Prop_Send, "m_bUseClassAnimations", 1);
}
}

MakeSolar(client)
{
TF2_SetPlayerClass(client, TFClass_DemoMan);
TF2_RegeneratePlayer(client);

new ragdoll = GetEntPropEnt(client, Prop_Send, "m_hRagdoll");
if (ragdoll > MaxClients && IsValidEntity(ragdoll)) AcceptEntityInput(ragdoll, "Kill");
decl String:weaponname[32];
GetClientWeapon(client, weaponname, sizeof(weaponname));
if (strcmp(weaponname, "tf_weapon_", false) == 0)
{
SetEntProp(GetPlayerWeaponSlot(client, 2), Prop_Send, "m_iWeaponState", 0);
TF2_RemoveCondition(client, TFCond_Slowed);
}
CreateTimer(0.0, Timer_Switch, client);
SetModel(client, GDEKNIGHT);

int iHealth = 4500;


int MaxHealth = 175;
float OverHealRate = 1.5;
// PrintToChatAll("MaxHealth %i", MaxHealth);

int iAdditiveHP = iHealth - MaxHealth;

TF2_SetHealth(client, iHealth);
// PrintToChatAll("iHealth %i", iHealth);

// PrintToChatAll("iAdditiveHP %i", iAdditiveHP);

float OverHeal = float(MaxHealth) * OverHealRate;
float TotalHealthOverHeal = iHealth * OverHealRate;

float OverHealPenaltyRate = OverHeal / TotalHealthOverHeal;
TF2Attrib_SetByName(client, "patient overheal penalty", OverHealPenaltyRate);


SetEntPropFloat(client, Prop_Send, "m_flModelScale", 1.75);
SetEntProp(client, Prop_Send, "m_bIsMiniBoss", true);
float HealthPackPickUpRate = float(MaxHealth) / float(iHealth);
TF2Attrib_SetByName(client, "health from packs decreased", HealthPackPickUpRate);
TF2Attrib_SetByName(client, "max health additive bonus", float(iAdditiveHP));
TF2Attrib_SetByName(client, "damage force reduction", 0.5);
TF2Attrib_SetByName(client, "move speed penalty", 0.5);
TF2Attrib_SetByName(client, "airblast vulnerability multiplier", 0.3);
TF2Attrib_SetByName(client, "cancel falling damage", 1.0);
//TF2Attrib_SetByName(client, "override footstep sound set", 4.0);
TF2Attrib_SetByName(client, "charge impact damage increased", 1.5);
TF2Attrib_SetByName(client, "ammo regen", 100.0);
TF2Attrib_SetByName(client, "rage giving scale", 0.85);
TF2Attrib_SetByName(client, "self dmg push force increased", 2.0);
TF2Attrib_SetByName(client, "head scale", 0.75);
UpdatePlayerHitbox(client, 1.75);

TF2_RemoveCondition(client, TFCond_CritOnFirstBlood);
TF2_AddCondition(client, TFCond_SpeedBuffAlly, 0.1);

PrintHintText(client , ROBOT_TIPS);

}

stock TF2_SetHealth(client, NewHealth)
{
SetEntProp(client, Prop_Send, "m_iHealth", NewHealth, 1);
SetEntProp(client, Prop_Data, "m_iHealth", NewHealth, 1);
SetEntProp(client, Prop_Data, "m_iMaxHealth", NewHealth, 1);
}

public Action:Timer_Switch(Handle:timer, any:client)
{
if (IsValidClient(client))
GiveGiantDemoKnight(client);
}

#define BroadBandBonnet 31307
#define StovePipe 100

stock GiveGiantDemoKnight(client)
{
if (IsValidClient(client))
{
RoboRemoveAllWearables(client);

TF2_RemoveWeaponSlot(client, 0);
TF2_RemoveWeaponSlot(client, 1);
TF2_RemoveWeaponSlot(client, 2);

CreateRoboWeapon(client, "tf_weapon_grenadelauncher", 1151, 6, 1, 2, 0);



CreateRoboHat(client, BroadBandBonnet, 10, 6, 0.0, 1.0, -1.0);
CreateRoboHat(client, StovePipe, 10, 6, 0.0, 1.0, -1.0);




int Weapon1 = GetPlayerWeaponSlot(client, TFWeaponSlot_Primary);
if(IsValidEntity(Weapon1))
{
// TF2Attrib_RemoveAll(Weapon1);
// TF2Attrib_SetByName(Weapon1, "damage penalty", 0.8);
TF2Attrib_SetByName(Weapon1, "fire rate bonus", 0.20);
TF2Attrib_SetByName(Weapon1, "clip size bonus", 2.25);
TF2Attrib_SetByName(Weapon1, "killstreak tier", 1.0);
TF2Attrib_SetByName(Weapon1, "faster reload rate", 1.75);
TF2Attrib_SetByName(Weapon1, "projectile speed decreased", 0.8);

TF2Attrib_SetByName(Weapon1, "hidden primary max ammo bonus", 3.0);

TF2Attrib_SetByName(Weapon1, "dmg penalty vs buildings", 0.5);
TF2CustAttr_SetString(Weapon1, "reload full clip at once", "1.0");


}
}
}

public void TF2_OnConditionAdded(int client, TFCond condition)
{

//PrintToChatAll("CONDITION WAS: %i for %N", condition, client);
if (IsRobot(client, ROBOT_NAME) && condition == TFCond_Charging)
{
SetEntPropFloat(client, Prop_Send, "m_flMaxspeed", 550.0);

}

}
Loading

0 comments on commit 80916c9

Please sign in to comment.