private void ToolbotDash_FixedUpdate(On.EntityStates.Toolbot.ToolbotDash.orig_FixedUpdate orig, EntityStates.Toolbot.ToolbotDash self) { orig(self); var count = GetCount(self.characterBody); //todo: add contextual skill override if (count > 0) { var cpt = self.GetComponent <ToolbotDashBoostTracker>(); if (!cpt) { return; } var isDown = self.hasInputBank && self.inputBank.skill3.down; if (!isDown) { cpt.retrigProtection = false; } if (!cpt.boosting && isDown && cpt.TryBoost()) { self.duration += toolbotReacTime; Util.PlaySound(EntityStates.Toolbot.ToolbotDash.endSoundString, self.gameObject); } } }
private Vector3 ToolbotDash_GetIdealVelocity(On.EntityStates.Toolbot.ToolbotDash.orig_GetIdealVelocity orig, EntityStates.Toolbot.ToolbotDash self) { var retv = orig(self); var cpt = self.GetComponent <ToolbotDashBoostTracker>(); if (cpt && cpt.boosting) { retv *= 1f + buffFrac * toolbotReacBoostFrac * cpt.maxBoosts; } return(retv); }
private void ToolbotDash_OnEnter(On.EntityStates.Toolbot.ToolbotDash.orig_OnEnter orig, EntityStates.Toolbot.ToolbotDash self) { orig(self); var count = GetCount(self.characterBody); if (count > 0) { var cpt = self.GetComponent <ToolbotDashBoostTracker>(); if (!cpt) { cpt = self.gameObject.AddComponent <ToolbotDashBoostTracker>(); } cpt.maxBoosts = count * toolbotReacBoostCount; cpt.boostsUsed = 0; } }