private void Flamethrower_OnExit(On.EntityStates.Mage.Weapon.Flamethrower.orig_OnExit orig, Flamethrower self) { orig(self); if (this.flamethrowerContext.ContainsKey(self)) { FlamethrowerContext context = this.flamethrowerContext[self]; context.passive.SkillCast(); _ = this.flamethrowerContext.Remove(self); } }
private void Flamethrower_OnEnter(On.EntityStates.Mage.Weapon.Flamethrower.orig_OnEnter orig, Flamethrower self) { orig(self); GameObject obj = self.outer.gameObject; if (AltArtiPassive.instanceLookup.ContainsKey(obj)) { AltArtiPassive passive = AltArtiPassive.instanceLookup[obj]; var context = new FlamethrowerContext(passive); passive.SkillCast(); this.flamethrowerContext[self] = context; } }
private void Flamethrower_FixedUpdate(On.EntityStates.Mage.Weapon.Flamethrower.orig_FixedUpdate orig, Flamethrower self) { orig(self); if (this.flamethrowerContext.ContainsKey(self)) { FlamethrowerContext context = this.flamethrowerContext[self]; context.timer += Time.fixedDeltaTime * context.passive.ext_attackSpeedStat; Int32 count = 0; while (context.timer >= context.passive.ext_flamethrowerInterval && count <= context.passive.ext_flamethrowerMaxPerTick) { context.passive.SkillCast(); count++; context.timer -= context.passive.ext_flamethrowerInterval; } } }