Skip to content

Commit

Permalink
- Misc :V
Browse files Browse the repository at this point in the history
  • Loading branch information
LordMisfit committed May 19, 2018
1 parent 1eca621 commit ecac864
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 38 deletions.
2 changes: 1 addition & 1 deletion zscript/dvds-armor_resistance.zc
Expand Up @@ -8172,7 +8172,7 @@ class BaseFloraArmorItemZSC : ResistanceGrantingItem
Super.PostBeginPlay();
}

override void Tick()
override void Tick()
{
int gfxeffectlvl = dvds_gfxeffectlevel;
if (Owner == null)
Expand Down
81 changes: 48 additions & 33 deletions zscript/dvds-monsters.zc
Expand Up @@ -79,39 +79,13 @@ class AetheriusMonsterZSC : AetheriusBaseZSC
}

int glitterheight, glitterheight2, glitterwidth;
int CritChance;
override void Tick()
{
string ActorClass = self.GetClassName();
bullet_tracer_mode = dvds_monsterbulletstracers;
levelbehavior = dvds_monsterlevelbehavior;
gfxeffectlevel = dvds_gfxeffectlevel;
if (self.health > 0 && CountInv("MonsterHasBuffs") == 0) { A_AetheriusStats(0); }

//*****************************************************
//**Allows Monsters to deal crits [4/256 base chance]**
//*****************************************************
// Base Chances
CritChance = 4; // 4
CritChance += (user_monsterlevel / 22.5); // +4 every 90 levels
if (CountInv(LDLCheck)) CritChance *= 2; // Legendaries have double crit rate

// Actor Checks
if (ActorClass == "DSLostSoul" || ActorClass == "DSLostSoul2") CritChance *= 4; // Lost Souls are Crit-happy nuisances
if (ActorClass == "NightmareNew" || ActorClass == "SirenNightmareNew") CritChance *= 4; // Nightmares are good at crits too
if (ActorClass == "SatyrNew") CritChance *= 8; // Satyrs are very likely to crit too

// Final Crit Roll
if (random(1,256) <= CritChance && self.health > 0 && !(level.frozen || globalfreeze) && dvds_monstercrits != 0)
{
self.A_SetInventory("DealCriticalHit",1);
//Console.Printf("Has Crit Item", CritChance);
}
else
{
self.A_SetInventory("DealCriticalHit",0);
}

if (((gametic + (ActorRandomBits & 15)) & 15) == 1)
{
if (self.bFRIENDLY > 0 && self.health > 0 && !(level.frozen || globalfreeze))
Expand Down Expand Up @@ -302,16 +276,57 @@ class AetheriusMonsterZSC : AetheriusBaseZSC
if (dvdsdebug_actordmgdisplays > 0 && damage > 0) Console.Printf(" (\czActor Defensive Input [STEP 2x - Player Dmg]\c-: \cxprefdmg = %d\c-, \cxprefrienddmg = %d\c-, \cxprecritdmg = %d\c-, \cxpreldldmg = %d\c-, \cydmg = %d\c-)", preplayerdmg, prefriendlydmg, precritdmg, preldldmg, damage);
}
else
if (enemyactor && damage > 0)
if (enemyactor && damage > 0 && dvds_monstercrits != 0)
{
// Dealing with Critical hits
precritdmg = damage;
if (enemyactor.CountInv("DealCriticalHit") > 0)
{
damage *= critdmgmulti;
A_GiveInventory("TookCriticalHit",1);
dealtcrit = true;
if (dvdsdebug_actordmgdisplays > 0 && damage > 0) Console.Printf(" (\czActor Defensive Input [STEP 2b - Monster-Crit Dmg]\c-: \cxolddmg = %d\c-, \cydmg = %d\c-, \cacritdmgmulti = %3f\c-)", precritdmg, damage, critdmgmulti);
int CritRoll, CritChance;
string ActorClass = enemyactor.GetClassName();
if (dvds_monstercrits != 0)
{
//*****************************************************
//**Allows Monsters to deal crits [4/256 base chance]**
//*****************************************************
// Base Chances
CritChance = 8 + (enemyactor.user_monsterlevel / 11.25); // 8 (+ 8 every 90 levels)
if (enemyactor && enemyactor.bBOSS) CritChance = (CritChance * 5) / 4; // Boss Flag Check
if (enemyactor && enemyactor.user_charmed > 0) CritChance = (CritChance * 5) / 4; // Charm Flag Check
if (enemyactor && enemyactor.user_legendaryevolved) CritChance *= 2; // Legendaries have double crit rate

// Actor Checks
if (ActorClass == "DSHelperDog") CritChance *= 3; // Helper Dogs get triple crit rate
if (ActorClass == "DSPainElemental" || ActorClass == "FPainElemental" || ActorClass == "DSPainElemental64" || ActorClass == "DSLostSoul" || ActorClass == "DSLostSoul2" || ActorClass == "DSLostSoul64" || ActorClass == "DSLostSoul642" ||
ActorClass == "FLostSoul1" || ActorClass == "FLostSoul2") CritChance *= 4; // Pain-Elementals/Lost Souls are Crit-happy nuisances
if (ActorClass == "DSDemon" || ActorClass == "DSDemon64" || ActorClass == "DSSpectre" || ActorClass == "DSSpectre64" || ActorClass == "BloodDemon" || ActorClass == "BloodSpectre" ||
ActorClass == "FDemon" || ActorClass == "FSpectre" || ActorClass == "FBloodDemon" || ActorClass == "FBloodSpectre") CritChance = (CritChance * 6) / 4; // Pinkies have 50% more crit
if (ActorClass == "DSRevenant" || ActorClass == "FRevenant" || ActorClass == "DeathIncarnate" || ActorClass == "FDeathIncarnate") CritChance = (CritChance * 6) / 4; // Death Incarnates have 50% more crit
if (ActorClass == "ClinkNew" || ActorClass == "FClink") CritChance = (CritChance * 6) / 4; // SabreClaws have 50% more crit
if (ActorClass == "OStalkerNew") CritChance = (CritChance * 6) / 4; // Strife Stalkers have 50% more crit
if (ActorClass == "ChainsawZombieNew") CritChance = (CritChance * 10) / 4; // Chainsaw Zombies have 150% more crit
if (ActorClass == "NightmareNew" || ActorClass == "SirenNightmareNew") CritChance *= 4; // Nightmares are good at crits too
if (ActorClass == "EvilDeadHandNew" || ActorClass == "BabyClownNew" ||
ActorClass == "BabyClown2New" || ActorClass == "BouncingClownNew") CritChance *= 4;
if (ActorClass == "SatyrNew") CritChance *= 8; // Satyrs are very likely to crit too
// Bpss Checks
if (ActorClass == "ClericBossNew" || ActorClass == "FighterBossNew" || ActorClass == "MageBossNew" ||
ActorClass == "ProgrammerNew" || ActorClass == "StrifeBishopNew" || ActorClass == "LoremasterNew" || ActorClass == "Macil1New" || ActorClass == "StrifMacil2NeweBishopNew") CritChance *= 4;
if (ActorClass == "AlienSpectre1New" || ActorClass == "AlienSpectre2New" || ActorClass == "AlienSpectre3New" || ActorClass == "AlienSpectre4New" || ActorClass == "AlienSpectre5New" ||
ActorClass == "AvatarNew" || ActorClass == "Benellus1DS" || ActorClass == "Benellus2DS" || ActorClass == "Benellus3DS" ||
ActorClass == "TNTSpider" || ActorClass == "SourceGuardian" || ActorClass == "AdolfHitlerDS") CritChance *= 6;
if (ActorClass == "DSparilMountedNew" || ActorClass == "DSparilUnmountedNew" || ActorClass == "KoraxNew" || ActorClass == "PennywiseBoss" ||
ActorClass == "EntityBossNew" || ActorClass == "EntitySecondNew" || ActorClass == "EntityAscended" || ActorClass == "ThamuzNew" || ActorClass == "TchernobogNew" ||
ActorClass == "Magmantis") CritChance *= 8;

// Final Crit Roll
CritRoll = random(1,512);
if (dvdsdebug_actordmgdisplays > 0 && damage > 0) Console.Printf(" (\czActor Defensive Input [Monster Crit Rate]\c-: %d / 512 (%d) \c-, \cyActorClass: = %s\c-)", CritRoll, CritChance, ActorClass);
if (CritRoll <= CritChance && enemyactor.health > 0 && !(level.frozen || globalfreeze) && dvds_monstercrits != 0)
{
damage *= critdmgmulti;
A_GiveInventory("TookCriticalHit",1);
dealtcrit = true;
if (dvdsdebug_actordmgdisplays > 0 && damage > 0) Console.Printf(" (\czActor Defensive Input [STEP 2b - Monster-Crit Dmg]\c-: \cxolddmg = %d\c-, \cydmg = %d\c-, \cacritdmgmulti = %3f\c-)", precritdmg, damage, critdmgmulti);
}
}
}

Expand Down
47 changes: 46 additions & 1 deletion zscript/dvds-playerclass.zc
Expand Up @@ -297,8 +297,53 @@ class AetheriusPlayerPawn : PlayerPawn
double MonsterLevelIgnoreFactor;
if (DVDSActor) MonsterLevelIgnoreFactor = (DVDSActor.user_monsterlevel * 0.00022223);
int LegendaryIgnoreDefenseFactor = 0.5 - (CallACS("MiscVarCheckDECORATE",10057) * 0.05) - (CallACS("MiscVarCheckDECORATE",10058) * 0.125);

//*************************************
//**Player Taking Crits from Monsters**
//*************************************
int criticalhit = 0;
if (DVDSActor && dvds_monstercrits != 0) criticalhit = DVDSActor.CountInv("DealCriticalHit");
int CritChance, CritRoll;
if (DVDSActor && dvds_monstercrits != 0)
{
string ActorClass = DVDSActor.GetClassName();
//*****************************************************
//**Allows Monsters to deal crits [4/256 base chance]**
//*****************************************************
// Base Chances
CritChance = 8 + (DVDSActor.user_monsterlevel / 11.25); // 8 (+ 8 every 90 levels)
if (DVDSActor && DVDSActor.bBOSS) CritChance = (CritChance * 5) / 4; // Boss Flag Check
if (DVDSActor && DVDSActor.user_charmed > 0) CritChance = (CritChance * 5) / 4; // Charm Flag Check
if (DVDSActor && DVDSActor.user_legendaryevolved) CritChance *= 2; // Legendaries have double crit rate

// Actor Checks
if (ActorClass == "DSHelperDog") CritChance *= 3; // Helper Dogs get triple crit rate
if (ActorClass == "DSPainElemental" || ActorClass == "FPainElemental" || ActorClass == "DSPainElemental64" || ActorClass == "DSLostSoul" || ActorClass == "DSLostSoul2" || ActorClass == "DSLostSoul64" || ActorClass == "DSLostSoul642" ||
ActorClass == "FLostSoul1" || ActorClass == "FLostSoul2") CritChance *= 4; // Pain-Elementals/Lost Souls are Crit-happy nuisances
if (ActorClass == "DSDemon" || ActorClass == "DSDemon64" || ActorClass == "DSSpectre" || ActorClass == "DSSpectre64" || ActorClass == "BloodDemon" || ActorClass == "BloodSpectre" ||
ActorClass == "FDemon" || ActorClass == "FSpectre" || ActorClass == "FBloodDemon" || ActorClass == "FBloodSpectre") CritChance = (CritChance * 6) / 4; // Pinkies have 50% more crit
if (ActorClass == "DSRevenant" || ActorClass == "FRevenant" || ActorClass == "DeathIncarnate" || ActorClass == "FDeathIncarnate") CritChance = (CritChance * 6) / 4; // Death Incarnates have 50% more crit
if (ActorClass == "ClinkNew" || ActorClass == "FClink") CritChance = (CritChance * 6) / 4; // SabreClaws have 50% more crit
if (ActorClass == "OStalkerNew") CritChance = (CritChance * 6) / 4; // Strife Stalkers have 50% more crit
if (ActorClass == "ChainsawZombieNew") CritChance = (CritChance * 10) / 4; // Chainsaw Zombies have 150% more crit
if (ActorClass == "NightmareNew" || ActorClass == "SirenNightmareNew") CritChance *= 4; // Nightmares are good at crits too
if (ActorClass == "EvilDeadHandNew" || ActorClass == "BabyClownNew" ||
ActorClass == "BabyClown2New" || ActorClass == "BouncingClownNew") CritChance *= 4;
if (ActorClass == "SatyrNew") CritChance *= 8; // Satyrs are very likely to crit too
// Bpss Checks
if (ActorClass == "ClericBossNew" || ActorClass == "FighterBossNew" || ActorClass == "MageBossNew" ||
ActorClass == "ProgrammerNew" || ActorClass == "StrifeBishopNew" || ActorClass == "LoremasterNew" || ActorClass == "Macil1New" || ActorClass == "StrifMacil2NeweBishopNew") CritChance *= 4;
if (ActorClass == "AlienSpectre1New" || ActorClass == "AlienSpectre2New" || ActorClass == "AlienSpectre3New" || ActorClass == "AlienSpectre4New" || ActorClass == "AlienSpectre5New" ||
ActorClass == "AvatarNew" || ActorClass == "Benellus1DS" || ActorClass == "Benellus2DS" || ActorClass == "Benellus3DS" ||
ActorClass == "TNTSpider" || ActorClass == "SourceGuardian" || ActorClass == "AdolfHitlerDS") CritChance *= 6;
if (ActorClass == "DSparilMountedNew" || ActorClass == "DSparilUnmountedNew" || ActorClass == "KoraxNew" || ActorClass == "PennywiseBoss" ||
ActorClass == "EntityBossNew" || ActorClass == "EntitySecondNew" || ActorClass == "EntityAscended" || ActorClass == "ThamuzNew" || ActorClass == "TchernobogNew" ||
ActorClass == "Magmantis") CritChance *= 8;

// Final Crit Roll
CritRoll = random(1,512);
if (dvdsdebug_playerdmgdisplays > 0 && damage > 0) Console.Printf(" (\cz[STEP 1a] Monster Crit Rate\c-: %d / 512 (%d) \c-, \cyActorClass: = %s\c-)", CritRoll, CritChance, ActorClass);
if (CritRoll <= CritChance && DVDSActor.health > 0 && !(level.frozen || globalfreeze) && dvds_monstercrits != 0) criticalhit = 1;
}
double dmgmulti = 2.0 + (0.01 * random(-10,10));

int defense;
Expand Down
7 changes: 4 additions & 3 deletions zscript/dvds-projectiles.zc
Expand Up @@ -210,13 +210,13 @@ class AetheriusProjectileZSC : AetheriusBaseProjectileZSC
if (dvdsdebug_showmiscdmginformation && IsMonster) Console.Printf("PROJECTILE SPEED: \czXVelOld\c-: \cz%.4f\c-, \cyXVelNew\c-: \cy%.4f\c-, \czYVelOld\c-: \cz%.4f\c-, \cyYVelNew\c-: \cy%.4f\c-, \czZVelOld\c-: \cz%.4f\c-, \cyZVelNew\c-: \cy%.4f\c-, \cxSpeedMulti\c-: \cx%.4f\c-, \cwSpeedMulti2\c-: \cw%.4f\c-, \cvSpeedMulti3\c-: \cv%.4f\c-", basexvel, newxvel, baseyvel, newyvel, basezvel, newzvel, speedmulti, speedmulti2, speedmulti3);
Super.PostBeginPlay(); // KEEP THIS HERE ELSE OTHER FUNCTIONS RELATED TO PostBeginPlay() BREAK :V
}

/*
override void Tick()
{
if (dvdsdebug_showmiscdmginformation) Console.Printf("PROJECTILE SPEED: \cyXVel\c-: \cy%.4f\c-, \cyYVel\c-: \cy%.4f\c-, \cyZVelNew\c-: \cy%.4f\c-", vel.x, vel.y, vel.z);
Super.Tick();
}

*/
void A_PlayCrisisAtkSound ()
{
A_PlaySound("crisisattack",6);
Expand Down Expand Up @@ -1525,13 +1525,14 @@ class HealMissile : AetheriusProjectileZSC
return -1;
}

/*
override void Tick()
{
//if (tracer.bFRIENDLY) tracer = null;
//This space for rent.
super.Tick(); // KEEP THIS HERE ELSE OTHER FUNCTIONS RELATED TO THIS BREAK :V
}
*/
}

// Converts Monsters to Friendlys [base for items like Monster Munchies]
Expand Down

0 comments on commit ecac864

Please sign in to comment.