public void Setup(LZFighterAnimator fighter) { life = fighter.fighter.GetComponent <Life>(); combo = fighter.fighter.GetComponent <Combo>(); stun = fighter.fighter.GetComponent <Stun>(); guardBreak = fighter.fighter.GetComponent <GuardBreak>(); }
private void OnTriggerEnter(Collider other) { Debug.Log("Sword Hit!\nDamage: " + damage + ". slowAmount: " + slowAmount + ". duration: " + duration + ". element: " + element + ".\nTag: " + other.tag); if (other.CompareTag("Player")) { BuffHandler playerBuffHandler = other.GetComponent <BuffHandler>(); StatHandler statHandler = other.GetComponent <StatHandler>(); Buff debuff; switch (element) { case ElementEnum.fire: debuff = new Burn(statHandler, new Stat(duration), damage); playerBuffHandler.AddBuff(debuff); break; case ElementEnum.ice: debuff = new Slow(statHandler, new Stat(duration), new ScalingStatModificator(slowAmount)); statHandler.TakeDamage(damage); playerBuffHandler.AddBuff(debuff); break; case ElementEnum.lightning: debuff = new Stun(statHandler, new Stat(duration)); statHandler.TakeDamage(damage); playerBuffHandler.AddBuff(debuff); break; } } }
public override bool ActivateAbility(GameObject target) { if (remaining_cooldown <= 0.001f) { //activate the ability here //play the bonk sound BonkSound.Play(); //apply a stun to the target enemy_controller enemy; unit_control_script unit; if ((enemy = target.GetComponent <enemy_controller>()) != null) { Stun stun = GameObject.Instantiate(new GameObject()).AddComponent <Stun>(); stun.SetDuration(stun_duration); stun.SetOwner(target); //face the owner towards the enemy unit_control_handle.FaceTowardsTarget(target.transform.position); //damage the enemy enemy.MagicDamage(damage, unit_control_handle); } remaining_cooldown = cooldown; } return(true); }
void IncreaseStun() { if (BC.MonsterIsAnimating) { return; } //this will prevent speed increasing when pause menu is open, end of game, or user's turn if (BC.PauseGame || userController.IsUsersTurn || (BC.BattleState == BattleController.State.ENDCONDITION) || (BC.BattleState == BattleController.State.BEGIN)) { return; } if (stunCounter >= BC.Threshold) { //remove stun component Stun stunComponent = GetComponent <Stun>(); if (stunComponent != null) { stunComponent.Check(); //reset speed and continue this process until the stun component changes this monsters status back to its originalState stunCounter = 0; } else { Debug.Log("IncreaseStun() was likely triggered but no stun component found for " + this.gameObject); } } else { stunCounter += baseSpeed * Time.deltaTime; } }
private void Awake() { _combatSystem = GetComponentInChildren <CombatSystem>(); _animator = GetComponent <Animator>(); _rigidbody = GetComponent <Rigidbody>(); _stun = GetComponentInChildren <Stun>(); }
public override void DoNextAction(GameContext gameContext) { IAction action = null; if (Buster.StunAvailableIn <= 0 && gameContext.OppositeBusters.Any()) { var a = gameContext.OppositeBusters.OrderBy(b => b.Position.GetDist(Buster.Position)).First(); if (a.Position.GetDist(Buster.Position) < 1760) { action = new Stun(a); Buster.StunAvailableIn = 20; } else { action = new Move(a.Position); } } else { Buster.CurrentState = new EmptyState(Buster); Buster.CurrentState.DoNextAction(gameContext); return; } action.Do(); }
public override void DoNextAction(GameContext gameContext) { IAction action = null; if (Buster.StunAvailableIn <= 0) { var a = gameContext.OppositeBusters.FirstOrDefault(b => b.Position.GetDist(Buster.Position) < 1760); if (a != null) { action = new Stun(a); Buster.StunAvailableIn = 20; } } if (action == null) { if (Buster.Position.GetDist(gameContext.GetQG()) < 1600) { gameContext.Score++; action = new Release(); } else { action = new Move(gameContext.GetQG()); } } action.Do(); }
public StunEffect(int duration) { this.duration = duration; effectType = StatusEffectType.CONDITION; action = new Stun(null); dir = Direction.NONE; }
private void Awake() { ghostState = new StateMachine(); ghostIdleState = new Idle(ghostAnimator, idleAnimation); ghostStuntState = new Stun(ghostAnimator, stunAnimation, returnStunMethod); box = GetComponent <BoxCollider2D>(); sr = GetComponent <SpriteRenderer>(); switch (element) { case Element.Fire: sr.color = Color.red; break; case Element.Ice: sr.color = Color.cyan; break; case Element.Water: sr.color = Color.blue; break; default: break; } }
// Start is called before the first frame update void Start() { personnage = GameObject.Find("Personnage"); perso = GameObject.Find("Personnage").GetComponent <Stun>(); stun = false; calcMov = GetComponent <CalculateMove>(); stunRange = perso.stunRange; }
public void copyFrom(Stun original) { this.creator = original.creator; this.timeMultiplier = original.timeMultiplier; this.damagePerSecond = original.damagePerSecond; this.ammoDrainedPerSec = original.ammoDrainedPerSec; this.duration = original.duration; }
// Adds the given items and returns the resultant Weapon public WeaponStats WithAugments(IEnumerable <WeaponAugmentTemplate> augments) { // Add up all the Stats of all the items WeaponAugmentTemplate overallAugment = this.BaseStats; foreach (WeaponAugmentTemplate augment in augments) { overallAugment = overallAugment.Plus(augment); } // Now do some last computations on the totals (like converting from rates to times) WeaponStats weapon = new WeaponStats(); // Attributes about when you may fire weapon.OwnersVelocityScale = 1; weapon.MaxAmmo = overallAugment.MaxAmmo; weapon.WarmupTime = 1 / overallAugment.WarmupRate; weapon.CooldownTime = 1 / overallAugment.CooldownRate; // Attributes of the projectile it launches, to determine when it hits Projectile templateProjectile = new Projectile(); templateProjectile.setVelocity(new double[] { 100, 0 }); templateProjectile.setRemainingFlightTime(overallAugment.FlightDuration); templateProjectile.setPenetration(0.5); templateProjectile.setNumExplosionsRemaining(overallAugment.MaxNumExplosions); templateProjectile.setHomingAccel(overallAugment.HomingAccel); templateProjectile.enableHomingOnCharacters(true); templateProjectile.enableHomingOnProjectiles(true); templateProjectile.setBoomerangAccel(0); templateProjectile.setShape(new GameCircle(10)); templateProjectile.setBitmap(this.ProjectileBitmap); weapon.TemplateProjectile = templateProjectile; // Attributes of the explosion it creates, to determine what happens in the area it hits Explosion templateExplosion = new Explosion(); templateExplosion.setDuration(overallAugment.ExplosionDuration); templateExplosion.setFriendlyFireEnabled(false); templateExplosion.setKnockbackAccel(0); templateExplosion.setShape(new GameCircle(overallAugment.ExplosionRadius)); templateExplosion.setBitmap(this.ExplosionBitmap); templateProjectile.setTemplateExplosion(templateExplosion); // Attributes of the stun that gets applied to characters caught in the explosion Stun templateStun = new Stun(); templateStun.setTimeMultiplier(1.0 / (overallAugment.TimestopWeight + 1)); templateStun.setDamagePerSecond(overallAugment.StunDamagePerSecond); templateStun.setAmmoDrain(0); templateStun.setDuration(overallAugment.StunDuration); templateExplosion.setTemplateStun(templateStun); return(weapon); }
// update the attributes of the current weapon based on the text fields void updateCurrentWeapon() { templateWeapon = new Weapon(); // attributes of the weapon templateWeapon.setMaxAmmo(parseDouble(maxAmmo)); templateWeapon.refillAmmo(); templateWeapon.setAmmoRechargeRate(parseDouble(ammoRechargeRate)); templateWeapon.setAmmoPerBox(parseDouble(ammoPerBox)); templateWeapon.setWarmupTime(parseDouble(warmupTime)); templateWeapon.setCooldownTime(parseDouble(cooldownTime)); #if SWITCH_TIMES templateWeapon.setSwitchToTime(parseDouble(switchToTime)); templateWeapon.setSwitchFromTime(parseDouble(switchFromTime)); #endif templateWeapon.setAutomatic(automatic.IsChecked.Value); templateWeapon.setTriggerSticky(stickyTrigger.IsChecked.Value); templateWeapon.setOwnersVelocityScale(parseDouble(ownersVelocityScale)); templateWeapon.enableFiringWhileInactive(fireWhileInactive.IsChecked.Value); templateWeapon.enableCooldownWhileInactive(cooldownWhileInactive.IsChecked.Value); templateWeapon.enableRechargeWhileInactive(rechargeWhileInactive.IsChecked.Value); Projectile templateProjectile = new Projectile(); double[] tempVector = new double[2]; tempVector[0] = parseDouble(projectileX); tempVector[1] = parseDouble(projectileY); templateProjectile.setCenter(tempVector); tempVector[0] = parseDouble(projectileVX); tempVector[1] = parseDouble(projectileVY); templateProjectile.setVelocity(tempVector); templateProjectile.setDragCoefficient(parseDouble(projectileDrag)); templateProjectile.setGravity(parseDouble(projectileGravity)); templateProjectile.setBitmap(ImageLoader.loadImage(projectileImage.Text)); templateProjectile.setShape(new GameCircle(parseDouble(projectileRadius))); templateProjectile.setRemainingFlightTime(parseDouble(remainingFlightTime)); templateProjectile.setNumExplosionsRemaining(parseInt(numExplosionsRemaining)); templateProjectile.setPenetration(parseDouble(penetration)); templateProjectile.setHomingAccel(parseDouble(homingAccel)); templateProjectile.setBoomerangAccel(parseDouble(boomerangAccel)); templateProjectile.enableHomingOnProjectiles(homeOnProjectiles.IsChecked.Value); templateProjectile.enableHomingOnCharacters(homeOnCharacters.IsChecked.Value); templateWeapon.setTemplateProjectile(templateProjectile); Explosion templateExplosion = new Explosion(); templateExplosion.setBitmap(ImageLoader.loadImage(explosionImage.Text)); templateExplosion.setShape(new GameCircle(parseDouble(explosionRadius))); templateExplosion.setDuration(parseDouble(explosionDuration)); templateExplosion.setFriendlyFireEnabled(friendlyFire.IsChecked.Value); templateExplosion.setKnockbackAccel(parseDouble(knockBack)); templateProjectile.setTemplateExplosion(templateExplosion); Stun templateStun = new Stun(); templateStun.setTimeMultiplier(parseDouble(timeMultiplier)); templateStun.setDamagePerSecond(parseDouble(damagePerSecond)); templateStun.setAmmoDrain(parseDouble(ammoDrain)); templateStun.setDuration(parseDouble(stunDuration)); templateExplosion.setTemplateStun(templateStun); }
public override void DoNextAction(GameContext gameContext) { var comment = ""; IAction action = null; if (Buster.StunAvailableIn <= 0) { var a = gameContext.OppositeBusters.FirstOrDefault(b => b.Position.GetDist(Buster.Position) < 1760); if (a != null && a.StunFor < 3) { action = new Stun(a); Buster.StunAvailableIn = 20; } } if (action == null && gameContext.Ghosts.Any(g => g.Position.GetDist(Buster.Position) < 2200)) { comment = "ghost to catch"; Ghost target; if (Buster.GhostTarget != null && gameContext.Ghosts.Select(g => g.Id).Contains(Buster.GhostTarget.Id)) { target = Buster.GhostTarget; } else { target = gameContext.Ghosts .Where(g => g.Position.GetDist(Buster.Position) < 2200 && gameContext.MyBusters.Where(b => b.GhostTarget?.Id == g.Id).Count() <= g.Value) .OrderBy(g => Buster.Position.GetDist(g.Position)) .FirstOrDefault(); } Buster.GhostTarget = target; if (target != null) { var dist = Buster.Position.GetDist(target.Position); if (dist < 1760 && dist > 900) { action = new Bust(target.Id); } else { if (dist < 900) { action = new Move(target.Position.X + 50, target.Position.Y); } else { action = new Move(target.Position); } } } } if (action == null) { comment = "no ghost"; action = new RandomMove(); } action.Do(comment); }
void updateFieldsFromWeapon() { // attributes of the weapon maxAmmo.Text = templateWeapon.getMaxAmmo().ToString(); ammoRechargeRate.Text = templateWeapon.getAmmoRechargeRate().ToString(); ammoPerBox.Text = templateWeapon.getAmmoPerBox().ToString(); warmupTime.Text = templateWeapon.getWarmupTime().ToString(); cooldownTime.Text = templateWeapon.getCooldownTime().ToString(); #if SWITCH_TIMES switchToTime.Text = templateWeapon.getSwitchToTime().ToString(); switchFromTime.Text = templateWeapon.getSwitchFromTime().ToString(); #endif automatic.IsChecked = templateWeapon.isAutomatic(); stickyTrigger.IsChecked = templateWeapon.isTriggerSticky(); ownersVelocityScale.Text = templateWeapon.getOwnersVelocityScale().ToString(); fireWhileInactive.IsChecked = templateWeapon.canFireWhileInactive(); cooldownWhileInactive.IsChecked = templateWeapon.coolsDownWhileInactive(); rechargeWhileInactive.IsChecked = templateWeapon.rechargesWhileInactive(); // attributes of the projectile Projectile templateProjectile = templateWeapon.getTemplateProjectile(); projectileX.Text = templateProjectile.getCenter()[0].ToString(); projectileY.Text = templateProjectile.getCenter()[1].ToString(); projectileVX.Text = templateProjectile.getVelocity()[0].ToString(); projectileVY.Text = templateProjectile.getVelocity()[1].ToString(); projectileDrag.Text = templateProjectile.getDragCoefficient().ToString(); projectileGravity.Text = templateProjectile.getGravity().ToString(); projectileImage.Text = templateProjectile.getImage().Source.ToString(); projectileRadius.Text = ((templateProjectile.getShape().getWidth() + templateProjectile.getShape().getHeight()) / 4).ToString(); remainingFlightTime.Text = templateProjectile.getRemainingFlightTime().ToString(); numExplosionsRemaining.Text = templateProjectile.getNumExplosionsRemaining().ToString(); penetration.Text = templateProjectile.getPenetration().ToString(); homingAccel.Text = templateProjectile.getHomingAccel().ToString(); boomerangAccel.Text = templateProjectile.getBoomerangAccel().ToString(); homeOnProjectiles.IsChecked = templateProjectile.shouldHomeOnProjectiles(); homeOnCharacters.IsChecked = templateProjectile.shouldHomeOnCharacters(); // attributes of the explosion Explosion templateExplosion = templateProjectile.getTemplateExplosion(); explosionImage.Text = templateExplosion.getImage().Source.ToString(); explosionRadius.Text = ((templateExplosion.getShape().getWidth() + templateExplosion.getShape().getHeight()) / 4).ToString(); explosionDuration.Text = templateExplosion.getDuration().ToString(); friendlyFire.IsChecked = templateExplosion.isFriendlyFireEnabled(); knockBack.Text = templateExplosion.getKnockbackAccel().ToString(); // attributes of the stun Stun templateStun = templateExplosion.getTemplateStun(); timeMultiplier.Text = templateStun.getTimeMultiplier().ToString(); damagePerSecond.Text = templateStun.getDamagePerSecond().ToString(); ammoDrain.Text = templateStun.getAmmoDrain().ToString(); stunDuration.Text = templateStun.getDuration().ToString(); // now update anything else that might need it //this.calculateCost(); this.weaponCost.Content = this.templateWeapon.getCost(); }
public void RunEffects() { map.selectedEnemy = this.name; GameObject effects = GameObject.Find("Effects"); if (Burned) { // map.selectedEnemy = this.name; // Burn burn = effects.GetComponent <Burn> (); burn.RunBurn(); } if (Slowed) { // map.selectedEnemy = this.name; // GameObject Slow = GameObject.Find ("_Scripts"); Slow slow = effects.GetComponent <Slow> (); slow.RunSlow(); } if (Poisoned) { // map.selectedEnemy = this.name; // GameObject Poison = GameObject.Find ("_Scripts"); Poison poison = effects.GetComponent <Poison> (); poison.RunPoison(); } if (Bleeding) { // map.selectedEnemy = this.name; // GameObject Bleed = GameObject.Find ("_Scripts"); Bleed bleed = effects.GetComponent <Bleed> (); bleed.RunBleed(); } if (Stunned) { // map.selectedEnemy = this.name; // GameObject Stun = GameObject.Find ("_Scripts"); Stun stun = effects.GetComponent <Stun> (); stun.RunStun(); } if (Chilled) { Chill chill = effects.GetComponent <Chill> (); chill.RunChill(); } if (Frozen) { Frozen frozen = effects.GetComponent <Frozen> (); frozen.RunFrozen(); } if (Blinded) { Blind blind = effects.GetComponent <Blind> (); blind.RunBlind(); } }
void Awake() { // Assign references _enemy = GetComponent <Enemy>(); Stun _stun = gameObject.AddComponent <Stun>(); _stun.Duration = 0.4f; render = GetComponent <Renderer>(); audioSource = GetComponent <AudioSource>(); }
public override void UseAbility(AbstractUnit unit) { base.UseAbility(unit); unit.RecieveDamage(getDmg(0)); Stun s = new Stun(unit, 1, 90); s.TurnOn(host.MOD.apply_stun_chance, unit.MOD.ResistBleed); unit.buffs.Add(s); }
void OnTriggerEnter(Collider other) { if (other.CompareTag("Enemy")) { Stun _stun = other.gameObject.AddComponent <Stun>(); _stun.Duration = liftDuration; GameObject tornado = Instantiate(miniTornado, other.transform.position, Quaternion.identity) as GameObject; MiniTornado _tornado = tornado.GetComponent <MiniTornado>(); _tornado.LiftDuration = liftDuration; _tornado.Damage = 70 + bonusDamage; _tornado.Target = other.gameObject; } }
// When damaged, check cooldown for the next snap; If snappable, reset cooldown, do damage, adjust visuals/audio. void OnDamage() { if (currentTickCooldown <= 0) { Stun stun = gameObject.AddComponent <Stun>(); stun.Duration = 0.4f; currentTickCooldown = TickCooldown; _enemy.TakeDamage(tickDamage); render.sharedMaterial = snapMaterial; audioSource.PlayOneShot(coldSnapImpactSound, 1); print("Snapped!"); } }
void ApplyStun(Transform playerHit) { Stun playerHitStun = playerHit.GetComponent <Stun> (); if (playerHitStun != null) { playerHitStun.Refresh(); playerHitStun.duration = 2; } else { Stun stun = playerHit.gameObject.AddComponent <Stun>(); stun.duration = 2; } }
void AddPlayerInformations() { foreach (PlayerController player in GameController.singleton.playerManager.playersControllers) { point.Add(player, 0); player.playerUI.points.text = point[player].ToString(); Stun auxStun = new Stun(); auxStun.canMove = true; auxStun.timeInStun = 0; canMove.Add(player, auxStun); GameObject obj = GameObject.Instantiate(_basket1, new Vector3(player.transform.position.x, player.transform.position.y + 2.1f, player.transform.position.z), Quaternion.identity, player.transform).gameObject as GameObject; obj.GetComponent <Basket>().player = player; obj.GetComponent <Basket>().type = 0; } }
private void ShootCollisionCheck() { Vector2 direction = Vector2.right; if (GetComponent <Movement>()) { if (GetComponent <Movement>().direction == Movement.Direction.Left) { direction = Vector2.left; } } RaycastHit2D hit = Physics2D.BoxCast(transform.position, Vector2.one, 0, direction, 200, _collision.collisionLayer); if (hit) { Damage damage = hit.collider.GetComponent <Damage>(); Stun stun = hit.collider.GetComponent <Stun>(); if (damage) { damage.ExecuteDamage(attack.GetDamageAmount(), null); Object blood = Instantiate(damage.bloodShoot, hit.point, Quaternion.identity); if (transform.localScale.x < 0) { ((GameObject)blood).transform.Rotate(0, 180, 0); } } if (stun) { stun.GetStunned(stunAmount: 0.7f, power: Stun.Power.Shoot); } if (bulletSpark) { GameObject instance = Instantiate(bulletSpark); instance.transform.position = new Vector3(hit.point.x, hit.point.y, -35); if (transform.localScale.x > 0) { Vector3 euler = instance.transform.localEulerAngles; euler.y = 180; instance.transform.localEulerAngles = euler; } if (!hit.collider.tag.Contains("Obstacle")) { instance.transform.FindContainsInChildren("Wood").SetActive(false); } } } }
private void OnCollisionEnter(Collision collision) { Physics.IgnoreLayerCollision(12, 8); GameObject other = collision.gameObject; if (other != null) { if (other.CompareTag("Player")) { BuffHandler playerBuffHandler = other.GetComponent <BuffHandler>(); StatHandler statHandler = other.GetComponent <StatHandler>(); Buff debuff; switch (element) { case ElementEnum.fire: debuff = new Burn(statHandler, new Stat(duration), damage); playerBuffHandler.AddBuff(debuff); break; case ElementEnum.ice: debuff = new Slow(statHandler, new Stat(duration), new ScalingStatModificator(slowAmount)); statHandler.TakeDamage(damage); playerBuffHandler.AddBuff(debuff); break; case ElementEnum.lightning: debuff = new Stun(statHandler, new Stat(duration)); statHandler.TakeDamage(damage); playerBuffHandler.AddBuff(debuff); break; } Destroy(gameObject); } Destroy(gameObject); } else if (other.gameObject.CompareTag("Untagged")) { // Debug.Log("Projectile collide with ELSE: " + other.gameObject.name); Destroy(gameObject); } else { // Debug.Log("Projectile collide with: " + other.gameObject.name); } }
public virtual void applyStun(Stun newStun) { // only process the stun if this object type cares about it if (this.stuns != null) { // figure out what created this stun Explosion source = newStun.getCreator(); Stun previous = null; if (this.stuns.TryGetValue(source, out previous)) { // if we were already stunned by this source then replace the previous stun previous = newStun; } else { // if we were not already stunned by this source then add this stun this.stuns.Add(source, newStun); } } }
void InsertPlayerInDates() { cameras = new GameObject[players.Count]; for (int i = 0; i < cameras.Length; i++) { cameras[i] = GameObject.Find("Camera_P" + (i + 1)); //Debug.Log(cameras[i].gameObject.name); } for (int i = 0; i < players.Count; i++) { playerMortos.Add(players[i], false); PositionsLR auxLR = new PositionsLR(); playerPosition.Add(players[i], auxLR); playerPosition[players[i]].left = players[i].transform.position; playerPosition[players[i]].right = new Vector3(players[i].transform.position.x + 2f, players[i].transform.position.y, players[i].transform.position.z); Stun auxStun = new Stun(); auxStun.canMove = true; auxStun.timeInStun = 0; canMove.Add(players[i], auxStun); } }
public override void DoNextAction(GameContext gameContext) { IAction action = null; if (Buster.StunAvailableIn <= 0 && gameContext.OppositeBusters.Any(b => b.State == 1)) { var a = gameContext.OppositeBusters.Where(b => b.State == 1).OrderBy(b => b.Position.GetDist(Buster.Position)).First(); if (a.Position.GetDist(Buster.Position) < 1760) { action = new Stun(a); Buster.StunAvailableIn = 20; } else { action = new Move(a.Position); } } else { action = new Move(gameContext.GetOppositeQG()); } action.Do("guard"); }
// This is called after collision checks are passed. Now we deal damage and stun the target public void interactWith(GameObject target, double numSeconds) { Stun newStun = new Stun(this.templateStun); // calculate stun duration double stunDuration = Math.Min(this.duration, numSeconds) + this.templateStun.getDuration(); newStun.setDuration(stunDuration); // calculate stun acceleration double dx = target.getCenter()[0] - this.getCenter()[0]; double dy = target.getCenter()[1] - this.getCenter()[1]; double distance = Math.Sqrt(dx * dx + dy * dy); // prevent division by zero if (distance <= 0) { distance = 1; } double[] accel = new double[2]; double accelScale = this.getKnockbackAccel() / distance; accel[0] = dx * accelScale; accel[1] = dy * accelScale; // error checking newStun.setAccel(accel); // apply the stun target.applyStun(newStun); Character myOwner = this.getOwner(); if (myOwner != null) { myOwner.reinforce(1); } if (target.isACharacter()) { ((Character)target).reinforce(-1); } }
private void BabarianSkill_VisibleChanged(object sender, EventArgs e) { Bash.SetSkillPoints = "0"; Leap.SetSkillPoints = "0"; DoubleSwing.SetSkillPoints = "0"; Stun.SetSkillPoints = "0"; DoubleThrow.SetSkillPoints = "0"; LeapAtk.SetSkillPoints = "0"; ConRate.SetSkillPoints = "0"; Frengy.SetSkillPoints = "0"; WhellWind.SetSkillPoints = "0"; Berserk.SetSkillPoints = "0"; Bash.setTextBoxColor(); Leap.setTextBoxColor(); DoubleSwing.setTextBoxColor(); Stun.setTextBoxColor(); DoubleThrow.setTextBoxColor(); LeapAtk.setTextBoxColor(); ConRate.setTextBoxColor(); Frengy.setTextBoxColor(); WhellWind.setTextBoxColor(); Berserk.setTextBoxColor(); }
private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { BuffHandler playerBuffHandler = other.GetComponent <BuffHandler>(); StatHandler statHandler = other.GetComponent <StatHandler>(); Buff debuff; switch (element) { case ElementEnum.fire: debuff = new Burn(statHandler, new Stat(duration), damage); playerBuffHandler.AddBuff(debuff); break; case ElementEnum.ice: debuff = new Slow(statHandler, new Stat(duration), new ScalingStatModificator(slowAmount)); statHandler.TakeDamage(damage); playerBuffHandler.AddBuff(debuff); break; case ElementEnum.lightning: debuff = new Stun(statHandler, new Stat(duration)); statHandler.TakeDamage(damage); playerBuffHandler.AddBuff(debuff); break; } } else if (other.CompareTag("Projectile")) { Debug.Log("SHIELD ENTER PROJECTILE: " + other.gameObject.transform); Destroy(other.gameObject); } }
public void UseSkill(Aggregate playerType, SkillType skillType, int rank, uint userID) { #region Global Variables uint eid; Random random = new Random(); #endregion #region Check Cool Down //make sure the user isn't cooling down from a previous use foreach (CoolDown cd in _game.CoolDownComponent.All) { if (cd.Type == skillType && cd.UserID == userID) return; } #endregion switch (playerType) { #region Checking Player Type #region Cyborg case Aggregate.CyborgPlayer: #region Race Variables #endregion switch (skillType) { #region Checking Skill Type case SkillType.EnergyShield: #region Skill Variables TimedEffect timedEffectShield; Buff buffEffectShield; float effectDurationShield; uint targetIDShield; int damageDecreaseShield; int healShield; HealOverTime hotShield; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 1; effectDurationShield = 5; damageDecreaseShield = 10; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; case 2: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 1; effectDurationShield = 5; damageDecreaseShield = 12; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; case 3: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 2; effectDurationShield = 6; damageDecreaseShield = 12; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; case 4: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 2; effectDurationShield = 6; damageDecreaseShield = 14; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; case 5: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 3; effectDurationShield = 7; damageDecreaseShield = 15; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; case 6: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 3; effectDurationShield = 8; damageDecreaseShield = 16; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; case 7: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 4; effectDurationShield = 17; damageDecreaseShield = 9; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; case 8: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 4; effectDurationShield = 10; damageDecreaseShield = 18; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; case 9: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 5; effectDurationShield = 10; damageDecreaseShield = 20; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; case 10: eid = Entity.NextEntity(); targetIDShield = GetPlayerID(); healShield = 5; effectDurationShield = 10; damageDecreaseShield = 25; foreach (Player player in _game.PlayerComponent.All) { targetIDShield = player.EntityID; timedEffectShield = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationShield, TimeLeft = effectDurationShield, }; _game.TimedEffectComponent.Add(eid, timedEffectShield); hotShield = new HealOverTime() { EntityID = eid, AmountPerTick = healShield, TickTime = 1 }; _game.HealOverTimeComponent.Add(eid, hotShield); buffEffectShield = new Buff() { EntityID = eid, TargetID = targetIDShield, DefenseMelee = damageDecreaseShield, DefenseRanged = damageDecreaseShield }; _game.BuffComponent.Add(eid, buffEffectShield); } break; default: break; #endregion } break; case SkillType.Defibrillate: #region Skill Variables TimedEffect timedEffect; float effectDuration; Buff buffEffect; uint targetID; int speedIncrease; int AttackSpeedIncrease; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); effectDuration = 3; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 150; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; case 2: eid = Entity.NextEntity(); effectDuration = 3; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 200; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; case 3: eid = Entity.NextEntity(); effectDuration = 4; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 200; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; case 4: eid = Entity.NextEntity(); effectDuration = 4; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 250; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; case 5: eid = Entity.NextEntity(); effectDuration = 5; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 250; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; case 6: eid = Entity.NextEntity(); effectDuration = 5; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 300; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; case 7: eid = Entity.NextEntity(); effectDuration = 5; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 300; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; case 8: eid = Entity.NextEntity(); effectDuration = 6; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 300; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; case 9: eid = Entity.NextEntity(); effectDuration = 6; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 350; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; case 10: eid = Entity.NextEntity(); effectDuration = 8; targetID = GetPlayerID(); speedIncrease = 200; AttackSpeedIncrease = 400; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration, }; _game.TimedEffectComponent.Add(eid, timedEffect); buffEffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackSpeed = AttackSpeedIncrease }; _game.BuffComponent.Add(eid, buffEffect); break; default: break; #endregion } break; case SkillType.Nanobots: #region Skill Variables TimedEffect timedEffectNano; float effectDurationNano; DirectHeal directheal; uint targetIDNano; int heal; HealOverTime hot; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 5; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); break; case 2: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 8; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); break; case 3: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 10; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); break; case 4: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 12; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); break; case 5: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 14; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); eid = Entity.NextEntity(); break; case 6: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 16; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); break; case 7: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 18; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); break; case 8: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 20; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); break; case 9: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 25; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); break; case 10: eid = Entity.NextEntity(); targetIDNano = GetPlayerID(); heal = 25; effectDurationNano = 10; directheal = new DirectHeal() { EntityID = eid, Amount = heal }; _game.DirectHealComponent.Add(eid, directheal); timedEffectNano = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationNano, TimeLeft = effectDurationNano, }; _game.TimedEffectComponent.Add(eid, timedEffectNano); hot = new HealOverTime() { EntityID = eid, AmountPerTick = 1, TickTime = 2 }; _game.HealOverTimeComponent.Add(eid, hot); break; default: break; #endregion } break; case SkillType.TargettingUpgrade: #region Skill Variables Buff buffEffectTarget; int WeaponIncrease; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 120; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; case 2: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 145; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; case 3: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 130; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; case 4: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 135; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; case 5: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 145; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; case 6: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 160; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; case 7: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 175; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; case 8: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 200; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; case 9: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 225; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; case 10: eid = Entity.NextEntity(); targetID = GetPlayerID(); WeaponIncrease = 250; buffEffectTarget = new Buff() { EntityID = eid, TargetID = targetID, WeaponStrength = WeaponIncrease }; _game.BuffComponent.Add(eid, buffEffectTarget); break; default: break; #endregion } break; case SkillType.RepulsorArm: #region Skill Variables InstantEffect instantEffectRepulse; uint eid_2Repulse; uint targetIDRepulse; KnockBack knockBackEffectRepulse; Vector2 originRepulse; float distanceRepulse; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; case 2: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; case 3: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; case 4: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; case 5: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; case 6: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; case 7: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; case 8: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; case 9: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; case 10: eid = Entity.NextEntity(); targetIDRepulse = GetPlayerID(); eid_2Repulse = Entity.NextEntity(); originRepulse = _game.PositionComponent[targetIDRepulse].Center; distanceRepulse = 100; instantEffectRepulse = new InstantEffect() { EntityID = eid_2Repulse, }; _game.InstantEffectComponent.Add(eid_2Repulse, instantEffectRepulse); knockBackEffectRepulse = new KnockBack() { EntityID = eid_2Repulse, Origin = originRepulse, Distance = distanceRepulse, }; _game.KnockBackComponent.Add(eid_2Repulse, knockBackEffectRepulse); break; default: break; #endregion } break; case SkillType.EnergyShot: #region Skill Variables DirectDamage DirectDamageShot; InstantEffect instantEffectShot; int shotDamage; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); shotDamage = 5; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; case 2: eid = Entity.NextEntity(); shotDamage = 10; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; case 3: eid = Entity.NextEntity(); shotDamage = 15; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; case 4: eid = Entity.NextEntity(); shotDamage = 20; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; case 5: eid = Entity.NextEntity(); shotDamage = 25; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; case 6: eid = Entity.NextEntity(); shotDamage = 30; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; case 7: eid = Entity.NextEntity(); shotDamage = 35; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; case 8: eid = Entity.NextEntity(); shotDamage = 38; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; case 9: eid = Entity.NextEntity(); shotDamage = 40; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; case 10: eid = Entity.NextEntity(); shotDamage = 45; instantEffectShot = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, instantEffectShot); DirectDamageShot = new DirectDamage() { EntityID = eid, Damage = shotDamage }; _game.DirectDamageComponent.Add(eid, DirectDamageShot); break; default: break; #endregion } break; case SkillType.AlloyBody: #region Skill Variables Buff buffEffectAlloy; int damageDecrease; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 5; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; case 2: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 10; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; case 3: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 12; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; case 4: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 14; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; case 5: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 16; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; case 6: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 18; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; case 7: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 20; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; case 8: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 26; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; case 9: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 32; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; case 10: eid = Entity.NextEntity(); targetID = GetPlayerID(); damageDecrease = 40; buffEffectAlloy = new Buff() { EntityID = eid, TargetID = targetID, DefenseMelee = damageDecrease, DefenseRanged = damageDecrease }; _game.BuffComponent.Add(eid, buffEffectAlloy); break; default: break; #endregion } break; case SkillType.CyberneticSlam: #region Skill Variables InstantEffect instantEffectSlam; uint eid_2Slam; uint targetIDSlam; DirectDamage DirectDamageSlam; int slamDamage; KnockBack knockBackEffectSlam; Vector2 originSlam; float distanceSlam; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 40; slamDamage = 5; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; case 2: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 60; slamDamage = 10; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; case 3: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 80; slamDamage = 15; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; case 4: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 100; slamDamage = 20; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; case 5: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 120; slamDamage = 25; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; case 6: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 140; slamDamage = 30; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; case 7: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 160; slamDamage = 35; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; case 8: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 180; slamDamage = 40; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; case 9: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 200; slamDamage = 45; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; case 10: eid = Entity.NextEntity(); targetIDSlam = GetPlayerID(); eid_2Slam = Entity.NextEntity(); originSlam = _game.PositionComponent[targetIDSlam].Center; distanceSlam = 220; slamDamage = 50; instantEffectSlam = new InstantEffect() { EntityID = eid_2Slam, }; _game.InstantEffectComponent.Add(eid_2Slam, instantEffectSlam); DirectDamageSlam = new DirectDamage() { EntityID = eid_2Slam, Damage = slamDamage }; _game.DirectDamageComponent.Add(eid_2Slam, DirectDamageSlam); knockBackEffectSlam = new KnockBack() { EntityID = eid_2Slam, Origin = originSlam, Distance = distanceSlam, }; _game.KnockBackComponent.Add(eid_2Slam, knockBackEffectSlam); break; default: break; #endregion } break; case SkillType.ThrusterRush: #region Skill Variables TimedEffect timedEffectRush; float effectDurationRush; Buff buffEffectRush; uint targetIDRush; int speedIncreaseRush; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; case 2: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; case 3: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; case 4: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; case 5: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; case 6: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; case 7: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; case 8: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; case 9: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; case 10: eid = Entity.NextEntity(); effectDurationRush = 1; targetIDRush = GetPlayerID(); speedIncreaseRush = 600; timedEffectRush = new TimedEffect() { EntityID = eid, TotalDuration = effectDurationRush, TimeLeft = effectDurationRush, }; _game.TimedEffectComponent.Add(eid, timedEffectRush); buffEffectRush = new Buff() { EntityID = eid, TargetID = targetIDRush, MovementSpeed = speedIncreaseRush, }; _game.BuffComponent.Add(eid, buffEffectRush); break; default: break; #endregion } break; default: break; #endregion } break; #endregion #region Gargranian case Aggregate.GargranianPlayer: #region Race Variables #endregion switch (skillType) { #region Checking Skill Type case SkillType.Teleport: { #region Skill Variables int psiCost = (int)(_game.StatsComponent[userID].PsiBase * .05); int distance = 300; #endregion switch (rank) { #region Checking Rank case 1: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .5); break; case 2: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .45); break; case 3: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .40); break; case 4: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .35); break; case 5: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .30); break; case 6: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .25); break; case 7: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .20); break; case 8: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .15); break; case 9: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .10); break; case 10: psiCost += (int)(_game.StatsComponent[userID].PsiBase * .05); break; default: break; #endregion } #region Logic if(DrainPsiOrFatigue(userID, psiCost)) { //a new eid for the animation uint entityId = Entity.NextEntity(); //need to get your old position and which direction you were facing Position pos = _game.PositionComponent[userID]; Facing facing = (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow; //create the animation for the after effect SpriteAnimation animation = new SpriteAnimation() { EntityID = entityId, IsLooping = false, CurrentFrame = 0, CurrentAnimationRow = (int)facing, FramesPerSecond = 15, IsPlaying = true, TimePassed = 0 }; _game.SpriteAnimationComponent[entityId] = animation; //give the after effect a position Position animationPos = new Position() { EntityID = entityId, Center = new Vector2(pos.Center.X - 32, pos.Center.Y - 32), Radius = 0, RoomID = _game.PositionComponent[userID].RoomID }; _game.PositionComponent[entityId] = animationPos; //set the spritesheet for the after effect Texture2D spriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/Invis"); spriteSheet.Name = "Spritesheets/Skills/Effects/Invis"; //set up the sprite for the after effect Sprite sprite = new Sprite() { EntityID = entityId, SpriteBounds = new Rectangle(0, 0, 64, 64), SpriteColor = new Color(255, 255, 255, 255), SpriteSheet = spriteSheet, UseDifferentColor = false, }; _game.SpriteComponent[entityId] = sprite; //allow the after effect to expire TimedEffect timedEffect = new TimedEffect() { EntityID = entityId, TotalDuration = 1, TimeLeft = 1 }; _game.TimedEffectComponent.Add(entityId, timedEffect); //depending at which direction the character is facing, move them in that direction switch (facing) { case Facing.North: pos.Center.Y -= distance; if (pos.Center.Y <= 0) pos.Center.Y = 5; break; case Facing.East: pos.Center.X += distance; if (pos.Center.X >= _game.GraphicsDevice.Viewport.Width) pos.Center.X = _game.GraphicsDevice.Viewport.Width - 5; break; case Facing.South: pos.Center.Y += distance; if (pos.Center.Y >= _game.GraphicsDevice.Viewport.Height) pos.Center.Y = _game.GraphicsDevice.Viewport.Height - 5; break; case Facing.West: pos.Center.X -= distance; if (pos.Center.X <= 0) pos.Center.X = 5; break; } //update their position _game.PositionComponent[userID] = pos; //check for collision with static objects _game.CollisionSystem.CheckTeleportCollision(userID, facing); } #endregion break; } case SkillType.Invisibility: { #region Skill Variables int duration = 0; int psiCost = (int)(_game.StatsComponent[userID].PsiBase * .05); #endregion switch (rank) { #region Checking Rank case 1: duration = 2; break; case 2: duration = 4; break; case 3: duration = 6; break; case 4: duration = 8; break; case 5: duration = 10; break; case 6: duration = 12; break; case 7: duration = 14; break; case 8: duration = 16; break; case 9: duration = 18; break; case 10: duration = 20; break; default: break; #endregion } #region Logic if (DrainPsiOrFatigue(userID, psiCost)) { eid = Entity.NextEntity(); TimedEffect timedEffect; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, timedEffect); AgroDrop agroDrop = new AgroDrop() { EntityID = eid, PlayerID = userID }; _game.AgroDropComponent.Add(eid, agroDrop); ChangeVisibility changeVisibility; changeVisibility = new ChangeVisibility() { EntityID = eid, TargetID = userID, newColor = new Color(45, 45, 45, 0) }; _game.ChangeVisibilityComponent.Add(eid, changeVisibility); } #endregion break; } case SkillType.Meditate: { #region Skill Variables float psiAmount = (float)(_game.StatsComponent[userID].PsiBase * .01); int duration = 5; #endregion switch (rank) { #region Checking Rank case 1: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .02); break; case 2: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .04); break; case 3: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .06); break; case 4: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .08); break; case 5: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .10); break; case 6: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .12); break; case 7: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .14); break; case 8: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .16); break; case 9: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .18); break; case 10: psiAmount += (float)(_game.StatsComponent[userID].PsiBase * .2); break; default: break; } #endregion #region logic uint entityId = Entity.NextEntity(); TimedEffect timed = new TimedEffect() { EntityID = entityId, TimeLeft = duration, TotalDuration = duration }; _game.TimedEffectComponent[entityId] = timed; PsiOrFatigueRegen regen = new PsiOrFatigueRegen() { EntityID = entityId, TargetID = userID, AmountPerTick = psiAmount, CurrentTime = 1, TickTime = 1 }; _game.PsiOrFatigueRegenComponent[entityId] = regen; #endregion break; } case SkillType.PsionicSpear: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); break; case 2: eid = Entity.NextEntity(); break; case 3: eid = Entity.NextEntity(); break; case 4: eid = Entity.NextEntity(); break; case 5: eid = Entity.NextEntity(); break; case 6: eid = Entity.NextEntity(); break; case 7: eid = Entity.NextEntity(); break; case 8: eid = Entity.NextEntity(); break; case 9: eid = Entity.NextEntity(); break; case 10: eid = Entity.NextEntity(); break; default: break; #endregion } break; case SkillType.Push: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); break; case 2: eid = Entity.NextEntity(); break; case 3: eid = Entity.NextEntity(); break; case 4: eid = Entity.NextEntity(); break; case 5: eid = Entity.NextEntity(); break; case 6: eid = Entity.NextEntity(); break; case 7: eid = Entity.NextEntity(); break; case 8: eid = Entity.NextEntity(); break; case 9: eid = Entity.NextEntity(); break; case 10: eid = Entity.NextEntity(); break; default: break; #endregion } break; case SkillType.ImprovedPsionicSpear: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); break; case 2: eid = Entity.NextEntity(); break; case 3: eid = Entity.NextEntity(); break; case 4: eid = Entity.NextEntity(); break; case 5: eid = Entity.NextEntity(); break; case 6: eid = Entity.NextEntity(); break; case 7: eid = Entity.NextEntity(); break; case 8: eid = Entity.NextEntity(); break; case 9: eid = Entity.NextEntity(); break; case 10: eid = Entity.NextEntity(); break; default: break; #endregion } break; case SkillType.MentalBarrier: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); break; case 2: eid = Entity.NextEntity(); break; case 3: eid = Entity.NextEntity(); break; case 4: eid = Entity.NextEntity(); break; case 5: eid = Entity.NextEntity(); break; case 6: eid = Entity.NextEntity(); break; case 7: eid = Entity.NextEntity(); break; case 8: eid = Entity.NextEntity(); break; case 9: eid = Entity.NextEntity(); break; case 10: eid = Entity.NextEntity(); break; default: break; #endregion } break; case SkillType.WormOfGargran: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); break; case 2: eid = Entity.NextEntity(); break; case 3: eid = Entity.NextEntity(); break; case 4: eid = Entity.NextEntity(); break; case 5: eid = Entity.NextEntity(); break; case 6: eid = Entity.NextEntity(); break; case 7: eid = Entity.NextEntity(); break; case 8: eid = Entity.NextEntity(); break; case 9: eid = Entity.NextEntity(); break; case 10: eid = Entity.NextEntity(); break; default: break; #endregion } break; case SkillType.Soothe: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); break; case 2: eid = Entity.NextEntity(); break; case 3: eid = Entity.NextEntity(); break; case 4: eid = Entity.NextEntity(); break; case 5: eid = Entity.NextEntity(); break; case 6: eid = Entity.NextEntity(); break; case 7: eid = Entity.NextEntity(); break; case 8: eid = Entity.NextEntity(); break; case 9: eid = Entity.NextEntity(); break; case 10: eid = Entity.NextEntity(); break; default: break; #endregion } break; default: break; #endregion } break; #endregion #region Cultist //Implementation for the Cultist Player ~Nick B. //Useful - Regex for separating rank cases into regions //Replace: break;.*:Cc:Cc //With: break;\n#endregion\n\n#region Rank \n //Turns // break; // // case 2: //Into // break; // #endregion // // #region Rank // case 2: // // All thats needed is to add #region Rank 1 // and an #endregion after case 10 // and put in the rank numbers // ~Nick B. case Aggregate.CultistPlayer: { #region Race Variables int test; #endregion switch (skillType) { #region Checking Skill Type case SkillType.Enslave: //Projectile { #region Skill Logic _game.SkillEntityFactory.CreateSkillProjectile(SkillType.Enslave, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], rank, 300, userID); #endregion break; } case SkillType.Fear: //AOE { #region Skill Variables int fearRange = 0; #endregion #region Skill Logic switch (rank) { #region Checking Rank #region Rank 1 case 1: fearRange = 10; break; #endregion #region Rank 2 case 2: fearRange = 13; break; #endregion #region Rank 3 case 3: fearRange = 17; break; #endregion #region Rank 4 case 4: fearRange = 25; break; #endregion #region Rank 5 case 5: fearRange = 30; break; #endregion #region Rank 6 case 6: fearRange = 37; break; #endregion #region Rank 7 case 7: fearRange = 48; break; #endregion #region Rank 8 case 8: fearRange = 55; break; #endregion #region Rank 9 case 9: fearRange = 67; break; #endregion #region Rank 10 case 10: fearRange = 90; break; #endregion default: break; #endregion } _game.SkillEntityFactory.CreateSkillAoE(SkillType.Fear, _game.PositionComponent[userID], rank, fearRange); #endregion break; } case SkillType.Sacrifice: //Instant { #region Skill Variables InstantEffect instantEffect; DirectHeal directHeal; DirectDamage directDamage; uint enslavedEnemyID = int.MaxValue; float damageValue = 0, healValue = 0; #endregion #region Skill Logic //Getting whatever is the first monster enslaved by this player //Alternatively, could sacrifice all enslaved monsters foreach (Enslave effect in _game.EnslaveComponent.All) { if (effect.OwnerID == userID && _game.EnemyComponent.Contains(effect.TargetID)) { enslavedEnemyID = effect.TargetID; break; } } if (!_game.EnemyComponent.Contains(enslavedEnemyID)) return; damageValue = _game.EnemyComponent[enslavedEnemyID].Health; switch (rank) { #region Checking Rank #region Rank 1 case 1: healValue = damageValue * 0.10f; //10% of remaining life break; #endregion #region Rank 2 case 2: healValue = damageValue * 0.15f; //15% of remaining life break; #endregion #region Rank 3 case 3: healValue = damageValue * 0.20f; //20% of remaining life break; #endregion #region Rank 4 case 4: healValue = damageValue * 0.25f; //25% of remaining life break; #endregion #region Rank 5 case 5: healValue = damageValue * 0.35f; //35% of remaining life break; #endregion #region Rank 6 case 6: healValue = damageValue * 0.50f; //50% of remaining life break; #endregion #region Rank 7 case 7: healValue = damageValue * 0.80f; //80% of remaining life break; #endregion #region Rank 8 case 8: healValue = damageValue * 1.00f; //100% of remaining life break; #endregion #region Rank 9 case 9: healValue = damageValue * 1.10f; //110% of remaining life break; #endregion #region Rank 10 case 10: healValue = damageValue * 0.1f; //10% of remaining life break; #endregion default: return; #endregion } //Since the only variance between ranks is the healValue variable, we can //keep it simple by just adding all the effects down here, after we've //got the variables initialized // ~Nick B. eid = Entity.NextEntity(); instantEffect = new InstantEffect() { EntityID = eid, isTriggered = false, }; _game.InstantEffectComponent.Add(eid, instantEffect); directDamage = new DirectDamage() { EntityID = eid, TargetID = enslavedEnemyID, Damage = damageValue, }; _game.DirectDamageComponent.Add(eid, directDamage); directHeal = new DirectHeal() { EntityID = eid, TargetID = userID, Amount = healValue, }; _game.DirectHealComponent.Add(eid, directHeal); #endregion break; } case SkillType.PsionicSpear: //Projectile { #region Skill Logic _game.SkillEntityFactory.CreateSkillProjectile(SkillType.PsionicSpear, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], rank, 300, userID); #endregion break; } case SkillType.Taint: //Projectile { #region Skill Logic _game.SkillEntityFactory.CreateSkillProjectile(SkillType.Taint, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], rank, 300, userID); #endregion break; } case SkillType.Rot: //Projectile { #region Skill Logic _game.SkillEntityFactory.CreateSkillProjectile(SkillType.Rot, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], rank, 300, userID); #endregion break; } case SkillType.Push: //AOE { #region Skill Variables int pushRange = 0; #endregion #region Skill Logic switch (rank) { #region Checking Rank #region Rank 1 case 1: pushRange = 15; break; #endregion #region Rank 2 case 2: pushRange = 20; break; #endregion #region Rank 3 case 3: pushRange = 24; break; #endregion #region Rank 4 case 4: pushRange = 30; break; #endregion #region Rank 5 case 5: pushRange = 45; break; #endregion #region Rank 6 case 6: pushRange = 60; break; #endregion #region Rank 7 case 7: pushRange = 85; break; #endregion #region Rank 8 case 8: pushRange = 100; break; #endregion #region Rank 9 case 9: pushRange = 125; break; #endregion #region Rank 10 case 10: pushRange = 150; break; #endregion default: break; #endregion } _game.SkillEntityFactory.CreateSkillAoE(SkillType.Push, _game.PositionComponent[userID], rank, pushRange); #endregion break; } case SkillType.Lightning: //Instant { #region Skill Variables InstantEffect instantEffect; DirectDamage directDamage; uint eid_2; TimedEffect timedEffect; Stun stun; Random damageMod = new Random(); Position evalPosition; uint tempEnemyID; List<uint> ignoreList = new List<uint>(); int chainNumber = 0; float duration = 0; int damageValue = 0; float maxChainDistance = 0; #endregion #region Skill Logic //No need to continue if we can't even get the position of the player //which means there will need to be some bugs to iron out if (!_game.PositionComponent.Contains(userID)) return; evalPosition = _game.PositionComponent[userID]; switch (rank) { #region Checking Rank #region Rank 1 case 1: chainNumber = 1; //Chains through 1 enemy duration = 2; //Duration of 2 seconds damageValue = 2 + damageMod.Next(4); //Damage between 2 and 5 maxChainDistance = 10; //Biggest gap an arc will span break; #endregion #region Rank 2 case 2: chainNumber = 1; //Chains through 1 enemy duration = 3; //Duration of 3 seconds damageValue = 4 + damageMod.Next(5); //Damage between 4 and 8 maxChainDistance = 15; //Biggest gap an arc will span break; #endregion #region Rank 3 case 3: chainNumber = 2; //Chains through 2 enemies duration = 3; //Duration of 3 seconds damageValue = 6 + damageMod.Next(5); //Damage between 6 and 10 maxChainDistance = 15; //Biggest gap an arc will span break; #endregion #region Rank 4 case 4: chainNumber = 2; //Chains through 2 enemies duration = 4; //Duration of 4 seconds damageValue = 10 + damageMod.Next(3); //Damage between 10 and 12 maxChainDistance = 18; //Biggest gap an arc with span break; #endregion #region Rank 5 case 5: chainNumber = 3; //Chains through 3 enemies duration = 5; //Duration of 5 seconds damageValue = 13 + damageMod.Next(3); //Damage between 13 and 15 maxChainDistance = 21; //Biggest gap an arc will span break; #endregion #region Rank 6 case 6: chainNumber = 3; //Chains through 3 enemies duration = 5; //Duration of 5 seconds damageValue = 17 + damageMod.Next(4); //Damage between 17 and 20 maxChainDistance = 26; //Biggest gap an arc will span break; #endregion #region Rank 7 case 7: chainNumber = 4; //Chains through 4 enemies duration = 7; //Duration of 7 seconds damageValue = 22 + damageMod.Next(6); //Damage between 22 and 27 maxChainDistance = 30; //Biggest gap an arc will span break; #endregion #region Rank 8 case 8: chainNumber = 4; //Chains through 4 enemies duration = 7; //Duration of 7 seconds damageValue = 30 + damageMod.Next(11); //Damage between 30 and 40 maxChainDistance = 38; //Biggest gap an arc will span break; #endregion #region Rank 9 case 9: chainNumber = 5; //Chains through 5 enemies duration = 7; //Duration of 7 seconds damageValue = 35 + damageMod.Next(13); //Damage between 35 and 47 maxChainDistance = 45; //Biggest gap an arc will span break; #endregion #region Rank 10 case 10: chainNumber = 6; //Chains through 6 enemies duration = 10; //Duration of 10 seconds damageValue = 50 + damageMod.Next(16); //Damage between 50 and 65 maxChainDistance = 50; //Biggest gap an arc will span break; #endregion default: return; #endregion } eid = Entity.NextEntity(); instantEffect = new InstantEffect() { EntityID = eid, isTriggered = false, }; _game.InstantEffectComponent.Add(eid, instantEffect); eid_2 = Entity.NextEntity(); timedEffect = new TimedEffect() { EntityID = eid_2, TotalDuration = duration, TimeLeft = duration, }; for (int x = 0; x < chainNumber; x++) { tempEnemyID = _game.CollisionSystem.GetClosestEnemy(evalPosition, ignoreList, maxChainDistance); //No need to continue, no enemy is close enough or no other enemies exist if (!_game.EnemyComponent.Contains(tempEnemyID)) break; //Add the enemy we just chained to to the ignore list, we don't want //to chain to them again ignoreList.Add(tempEnemyID); //This will be an instant effect, so we'll use eid here directDamage = new DirectDamage() { EntityID = eid, TargetID = tempEnemyID, Damage = damageValue, }; _game.DirectDamageComponent.Add(eid, directDamage); //This will be a timed effect, so we'll need eid_2 here stun = new Stun() { EntityID = eid_2, TargetID = tempEnemyID, Type = StunType.CantBreak, }; _game.StunComponent.Add(eid_2, stun); } #endregion break; } case SkillType.Malice: //AOE { #region Skill Variables int meterConversion = 75; int maliceRange = 0; #endregion #region Skill Logic switch (rank) { #region Checking Rank #region Rank 1 case 1: maliceRange = 2; break; #endregion #region Rank 2 case 2: maliceRange = 2; break; #endregion #region Rank 3 case 3: maliceRange = 3; break; #endregion #region Rank 4 case 4: maliceRange = 3; break; #endregion #region Rank 5 case 5: maliceRange = 4; break; #endregion #region Rank 6 case 6: maliceRange = 5; break; #endregion #region Rank 7 case 7: maliceRange = 5; break; #endregion #region Rank 8 case 8: maliceRange = 6; break; #endregion #region Rank 9 case 9: maliceRange = 6; break; #endregion #region Rank 10 case 10: maliceRange = 6; break; #endregion default: break; #endregion } _game.SkillEntityFactory.CreateSkillAoE(SkillType.Malice, _game.PositionComponent[userID], rank, maliceRange * meterConversion); #endregion break; } default: { break; } #endregion } break; } #endregion #region Vermis case Aggregate.ZombiePlayer: CoolDown coolDown; TimedEffect timeEffect; Buff buff; #region Race Variables #endregion switch (skillType) { #region Checking Skill Type case SkillType.ThrownBlades: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 1, 300, userID); break; case 2: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 2, 300, userID); break; case 3: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 3, 300, userID); break; case 4: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 4, 300, userID); break; case 5: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 5, 300, userID); break; case 6: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 6, 300, userID); break; case 7: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 7, 300, userID); break; case 8: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 8, 300, userID); break; case 9: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 9, 300, userID); break; case 10: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.ThrownBlades, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.ThrownBlades, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 10, 300, userID); break; default: break; #endregion } break; case SkillType.FrenziedAttack: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID =eid, TimeLeft = 10, TotalDuration=10, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 100, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 10, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 10, }; _game.BuffComponent.Add(eid, buff); break; case 2: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID =eid, TimeLeft = 10, TotalDuration=10, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 120, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 15, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 15, }; _game.BuffComponent.Add(eid, buff); break; case 3: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 12, TimeLeft = 12, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 12, TotalDuration = 12, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 120, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 15, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 15, }; _game.BuffComponent.Add(eid, buff); break; case 4: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 14, TimeLeft = 14, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 14, TotalDuration = 14, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 140, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 20, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 20, }; _game.BuffComponent.Add(eid, buff); break; case 5: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 14, TimeLeft = 14, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 14, TotalDuration = 14, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 140, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 20, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 20, }; _game.BuffComponent.Add(eid, buff); break; case 6: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 16, TimeLeft = 16, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 16, TotalDuration = 16, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 140, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 20, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 20, }; _game.BuffComponent.Add(eid, buff); break; case 7: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 16, TimeLeft = 16, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 16, TotalDuration = 16, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 160, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 25, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 25, }; _game.BuffComponent.Add(eid, buff); break; case 8: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 18, TimeLeft = 18, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 18, TotalDuration = 18, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 160, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 25, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 25, }; _game.BuffComponent.Add(eid, buff); break; case 9: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 18, TimeLeft = 18, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 18, TotalDuration = 18, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 180, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 30, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 30, }; _game.BuffComponent.Add(eid, buff); break; case 10: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 20, TimeLeft = 20, Type = SkillType.FrenziedAttack, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 20, TotalDuration = 20, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 200, DefenseMelee = 0, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 35, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = true, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 35, }; _game.BuffComponent.Add(eid, buff); break; default: break; #endregion } break; case SkillType.CausticWeapons: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 2: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 3: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 4: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 5: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 6: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 7: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 8: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 9: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 10: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.CausticWeapons, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; default: break; #endregion } break; case SkillType.MeatShield: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 10, TotalDuration = 10, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 1, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = true, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = -6, }; _game.BuffComponent.Add(eid, buff); break; case 2: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 10, TotalDuration = 10, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 1, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = true, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = -5, }; _game.BuffComponent.Add(eid, buff); break; case 3: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 12, TimeLeft = 12, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 12, TotalDuration = 12, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 2, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = true, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = -5, }; _game.BuffComponent.Add(eid, buff); break; case 4: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 14, TimeLeft = 14, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 14, TotalDuration = 14, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 2, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = true, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = -4, }; _game.BuffComponent.Add(eid, buff); break; case 5: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 14, TimeLeft = 14, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 14, TotalDuration = 14, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 3, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = true, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = -4, }; _game.BuffComponent.Add(eid, buff); break; case 6: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 16, TimeLeft = 16, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 16, TotalDuration = 16, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 3, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = true, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = -3, }; _game.BuffComponent.Add(eid, buff); break; case 7: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 16, TimeLeft = 16, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 16, TotalDuration = 16, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 4, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = true, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = -3, }; _game.BuffComponent.Add(eid, buff); break; case 8: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 18, TimeLeft = 18, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 18, TotalDuration = 18, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 4, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = true, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = -2, }; _game.BuffComponent.Add(eid, buff); break; case 9: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 18, TimeLeft = 18, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 18, TotalDuration = 18, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 5, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = true, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = -2, }; _game.BuffComponent.Add(eid, buff); break; case 10: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 20, TimeLeft = 20, Type = SkillType.MeatShield, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 20, TotalDuration = 20, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = 0, DefenseMelee = 0, DefenseRanged = 7, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = false, isPercentDefenseRanged = true, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength =- 1, }; _game.BuffComponent.Add(eid, buff); break; default: break; #endregion } break; case SkillType.HardenedBody: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 10, TotalDuration = 10, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -100, DefenseMelee = 1, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength =0, }; _game.BuffComponent.Add(eid, buff); break; case 2: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 10, TotalDuration = 10, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -90, DefenseMelee = 1, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength =0, }; _game.BuffComponent.Add(eid, buff); break; case 3: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 12, TimeLeft = 12, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 12, TotalDuration = 12, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -90, DefenseMelee = 2, DefenseRanged =0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 0, }; _game.BuffComponent.Add(eid, buff); break; case 4: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 14, TimeLeft = 14, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 14, TotalDuration = 14, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -80, DefenseMelee = 2, DefenseRanged = 2, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 0, }; _game.BuffComponent.Add(eid, buff); break; case 5: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 14, TimeLeft = 14, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 14, TotalDuration = 14, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -80, DefenseMelee = 3, DefenseRanged = 2, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 0, }; _game.BuffComponent.Add(eid, buff); break; case 6: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 16, TimeLeft = 16, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 16, TotalDuration = 16, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -70, DefenseMelee = 3, DefenseRanged = 3, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 0, }; _game.BuffComponent.Add(eid, buff); break; case 7: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 16, TimeLeft = 16, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 16, TotalDuration = 16, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -70, DefenseMelee = 4, DefenseRanged = 4, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 0, }; _game.BuffComponent.Add(eid, buff); break; case 8: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 18, TimeLeft = 18, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 18, TotalDuration = 18, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -60, DefenseMelee = 4, DefenseRanged = 4, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 0, }; _game.BuffComponent.Add(eid, buff); break; case 9: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 18, TimeLeft = 18, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 18, TotalDuration = 18, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -60, DefenseMelee = 5, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = false, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed =true, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 0, }; _game.BuffComponent.Add(eid, buff); break; case 10: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 20, TimeLeft = 20, Type = SkillType.HardenedBody, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); timeEffect = new TimedEffect() { EntityID = eid, TimeLeft = 20, TotalDuration = 20, }; _game.TimedEffectComponent.Add(eid, timeEffect); buff = new Buff() { EntityID = eid, MovementSpeed = -50, DefenseMelee = 7, DefenseRanged = 0, AttackMelee = 0, AttackRanged = 0, AttackSpeed = 00, isPercentAttackMelee = false, isPercentAttackRanged = false, isPercentAttackSpeed = true, isPercentDefenseMelee = true, isPercentDefenseRanged = false, isPercentFatigue = false, isPercentHealth = false, isPercentMovementSpeed = false, Fatigue = 0, Health = 0, isPercentPsi = false, isPercentResistPoison = false, isPercentWeaponAccuracy = false, isPercentWeaponSpeed = false, isPercentWeaponStrength = false, Psi = 0, ResistPoison = 0, TargetID = userID, WeaponAccuracy = 0, WeaponSpeed = 0, WeaponStrength = 0, }; _game.BuffComponent.Add(eid, buff); break; default: break; #endregion } break; case SkillType.Regeneration: #region Skill Variables HealOverTime HoT; TimedEffect time; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); HoT = new HealOverTime() { AmountPerTick = 1, CurrentStack = 1, CurrentTime = 0, EntityID = eid, MaxStack = 1, TargetID = userID, TickTime = 1, }; _game.HealOverTimeComponent.Add(eid, HoT); time = new TimedEffect() { EntityID = eid, TimeLeft = 10, TotalDuration = 10, }; _game.TimedEffectComponent.Add(eid, time); break; case 2: eid = Entity.NextEntity(); HoT = new HealOverTime() { AmountPerTick = 1, CurrentStack = 1, CurrentTime = 0, EntityID = eid, MaxStack = 1, TargetID = userID, TickTime = 1, }; _game.HealOverTimeComponent.Add(eid, HoT); time = new TimedEffect() { EntityID = eid, TimeLeft = 12, TotalDuration = 12, }; _game.TimedEffectComponent.Add(eid, time); coolDown = new CoolDown() { EntityID = eid, MaxTime = 12, TimeLeft = 12, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 3: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 12, TimeLeft = 12, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); HoT = new HealOverTime() { AmountPerTick = 1, CurrentStack = 1, CurrentTime = 0, EntityID = eid, MaxStack = 1, TargetID = userID, TickTime = 1, }; _game.HealOverTimeComponent.Add(eid, HoT); time = new TimedEffect() { EntityID = eid, TimeLeft = 12, TotalDuration = 12, }; _game.TimedEffectComponent.Add(eid, time); break; case 4: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); HoT = new HealOverTime() { AmountPerTick = 2, CurrentStack = 1, CurrentTime = 0, EntityID = eid, MaxStack = 1, TargetID = userID, TickTime = 1, }; _game.HealOverTimeComponent.Add(eid, HoT); time = new TimedEffect() { EntityID = eid, TimeLeft = 14, TotalDuration = 14, }; _game.TimedEffectComponent.Add(eid, time); break; case 5: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); HoT = new HealOverTime() { AmountPerTick = 3, CurrentStack = 1, CurrentTime = 0, EntityID = eid, MaxStack = 1, TargetID = userID, TickTime = 1, }; _game.HealOverTimeComponent.Add(eid, HoT); time = new TimedEffect() { EntityID = eid, TimeLeft = 14, TotalDuration = 14, }; _game.TimedEffectComponent.Add(eid, time); break; case 6: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); HoT = new HealOverTime() { AmountPerTick = 3, CurrentStack = 1, CurrentTime = 0, EntityID = eid, MaxStack = 1, TargetID = userID, TickTime = 1, }; _game.HealOverTimeComponent.Add(eid, HoT); time = new TimedEffect() { EntityID = eid, TimeLeft = 16, TotalDuration = 16, }; _game.TimedEffectComponent.Add(eid, time); break; case 7: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); HoT = new HealOverTime() { AmountPerTick = 4, CurrentStack = 1, CurrentTime = 0, EntityID = eid, MaxStack = 1, TargetID = userID, TickTime = 1, }; _game.HealOverTimeComponent.Add(eid, HoT); time = new TimedEffect() { EntityID = eid, TimeLeft = 16, TotalDuration = 16, }; _game.TimedEffectComponent.Add(eid, time); break; case 8: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); break; case 9: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); HoT = new HealOverTime() { AmountPerTick = 4, CurrentStack = 1, CurrentTime = 0, EntityID = eid, MaxStack = 1, TargetID = userID, TickTime = 1, }; _game.HealOverTimeComponent.Add(eid, HoT); time = new TimedEffect() { EntityID = eid, TimeLeft = 18, TotalDuration = 18, }; _game.TimedEffectComponent.Add(eid, time); break; case 10: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 10, TimeLeft = 10, Type = SkillType.Regeneration, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); HoT = new HealOverTime() { AmountPerTick = 5, CurrentStack = 1, CurrentTime = 0, EntityID = eid, MaxStack = 1, TargetID = userID, TickTime = 1, }; _game.HealOverTimeComponent.Add(eid, HoT); time = new TimedEffect() { EntityID = eid, TimeLeft = 20, TotalDuration = 20, }; _game.TimedEffectComponent.Add(eid, time); break; default: break; #endregion } break; case SkillType.BenignParasite: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 1, 300, userID); break; case 2: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 2, 300, userID); break; case 3: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 3, 300, userID); break; case 4: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 4, 300, userID); break; case 5: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 5, 300, userID); break; case 6: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 6, 300, userID); break; case 7: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 7, 300, userID); break; case 8: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 8, 300, userID); break; case 9: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 9, 300, userID); break; case 10: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.BenignParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.BenignParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 10, 300, userID); break; default: break; #endregion } break; case SkillType.MaliciousParasite: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 1, 300, userID); break; case 2: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 2, 300, userID); break; case 3: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 3, 300, userID); break; case 4: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 4, 300, userID); break; case 5: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 5, 300, userID); break; case 6: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 6, 300, userID); break; case 7: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 7, 300, userID); break; case 8: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 8, 300, userID); break; case 9: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 9, 300, userID); break; case 10: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MaliciousParasite, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MaliciousParasite, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 10, 300, userID); break; default: break; #endregion } break; case SkillType.MindlessParasites: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 1, 300, userID); break; case 2: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 2, 300, userID); break; case 3: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 3, 300, userID); break; case 4: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 4, 300, userID); break; case 5: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 5, 300, userID); break; case 6: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 6, 300, userID); break; case 7: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 7, 300, userID); break; case 8: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 8, 300, userID); break; case 9: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 9, 300, userID); break; case 10: eid = Entity.NextEntity(); coolDown = new CoolDown() { EntityID = eid, MaxTime = 1, TimeLeft = 1, Type = SkillType.MindlessParasites, UserID = userID, }; _game.CoolDownComponent.Add(eid, coolDown); _game.SkillEntityFactory.CreateSkillProjectile(SkillType.MindlessParasites, (Facing)_game.SpriteAnimationComponent[userID].CurrentAnimationRow, _game.PositionComponent[userID], 10, 300, userID); break; default: break; #endregion } break; default: break; #endregion } break; #endregion #region Earthian //Earthian Skills done by Andrew Bellinder case Aggregate.EarthianPlayer: #region Race Variables #endregion switch (skillType) { #region Checking Skill Type #region Turret case SkillType.Turret: { #region Skill Variables Turret turret; TimedEffect timedEffect; float effectDuration; Sprite sprite; Position turretPosition; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); effectDuration = 3; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 100, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; case 2: eid = Entity.NextEntity(); effectDuration = 4; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 100, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; case 3: eid = Entity.NextEntity(); effectDuration = 5; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 150, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; case 4: eid = Entity.NextEntity(); effectDuration = 6; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 200, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; case 5: eid = Entity.NextEntity(); effectDuration = 7; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 250, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; case 6: eid = Entity.NextEntity(); effectDuration = 8; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 300, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; case 7: eid = Entity.NextEntity(); effectDuration = 9; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 350, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; case 8: eid = Entity.NextEntity(); effectDuration = 10; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 400, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; case 9: eid = Entity.NextEntity(); effectDuration = 11; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 450, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; case 10: eid = Entity.NextEntity(); effectDuration = 12; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); turretPosition = _game.PositionComponent[GetPlayerID()]; turret = new Turret() { EntityID = eid, position = turretPosition, range = 500, }; _game.TurretComponent.Add(eid, turret); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(11, 49, 37, 63), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, turret.position); break; default: break; #endregion } } break; #endregion #region Trap case SkillType.Trap: { #region Skill Variables TimedEffect timedEffect; float effectDuration; Trap trap; Sprite sprite; Position trapPosition; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); effectDuration = 3; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 20, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; case 2: eid = Entity.NextEntity(); effectDuration = 4; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 20, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; case 3: eid = Entity.NextEntity(); effectDuration = 4; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 30, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; case 4: eid = Entity.NextEntity(); effectDuration = 4; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 30, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; case 5: eid = Entity.NextEntity(); effectDuration = 5; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 40, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; case 6: eid = Entity.NextEntity(); effectDuration = 5; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 40, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; case 7: eid = Entity.NextEntity(); effectDuration = 6; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 50, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; case 8: eid = Entity.NextEntity(); effectDuration = 6; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 50, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; case 9: eid = Entity.NextEntity(); effectDuration = 6; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 60, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; case 10: eid = Entity.NextEntity(); effectDuration = 7; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); trapPosition = _game.PositionComponent[GetPlayerID()]; trap = new Trap() { EntityID = eid, position = trapPosition, isSet = false, range = 60, duration = effectDuration, }; _game.TrapComponent.Add(eid, trap); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(0, 10, 69, 42), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, trap.position); break; default: break; #endregion } } break; #endregion #region Exploding Droids case SkillType.ExplodingDroids: { if (_game.EnemyComponent.All.Count() > 0) { #region Skill Variables TimedEffect timedEffect; float effectDuration; Movement movement; float droidSpeed; ExplodingDroid explodingDroid; Sprite sprite; Position droidPosition; Collideable collideable; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 110; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 32; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; case 2: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 115; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 35; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; case 3: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 120; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 40; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; case 4: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 125; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 45; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; case 5: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 130; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 50; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; case 6: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 135; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 55; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; case 7: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 140; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 60; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; case 8: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 145; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 65; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; case 9: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 150; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 70; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; case 10: eid = Entity.NextEntity(); effectDuration = 6; droidSpeed = 155; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); movement = new Movement() { EntityID = eid, Speed = droidSpeed, }; _game.MovementComponent.Add(eid, movement); droidPosition = _game.PositionComponent[GetPlayerID()]; droidPosition.Radius = 75; explodingDroid = new ExplodingDroid() { EntityID = eid, position = droidPosition, hasEnemy = false, }; _game.ExplodingDroidComponent.Add(eid, explodingDroid); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/EngineeringOffense"), SpriteBounds = new Rectangle(51, 45, 71, 82), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = droidPosition.RoomID, Bounds = new CircleBounds(droidPosition.Center, droidPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, explodingDroid.position); break; default: break; #endregion } } } break; #endregion #region Healing Station case SkillType.HealingStation: { #region Skill Variables HealingStation healingStation; Sprite sprite; Position stationPosition; Collideable collideable; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 10, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; case 2: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 15, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; case 3: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 20, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; case 4: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 25, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; case 5: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 30, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; case 6: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 35, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; case 7: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 40, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; case 8: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 45, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; case 9: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 50, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; case 10: eid = Entity.NextEntity(); stationPosition = _game.PositionComponent[GetPlayerID()]; healingStation = new HealingStation() { EntityID = eid, position = stationPosition, healthAvailable = 60, }; _game.HealingStationComponent.Add(eid, healingStation); collideable = new Collideable() { EntityID = eid, RoomID = stationPosition.RoomID, Bounds = new CircleBounds(stationPosition.Center, stationPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Turret"), SpriteBounds = new Rectangle(0, 0, 37, 28), }; _game.SpriteComponent.Add(eid, sprite); _game.PositionComponent.Add(eid, stationPosition); break; default: break; #endregion } } break; #endregion #region Portable Shop case SkillType.PortableShop: { #region Skill Variables TimedEffect timedEffect; float effectDuration; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); effectDuration = 5; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 1); break; case 2: eid = Entity.NextEntity(); effectDuration = 5; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 2); break; case 3: eid = Entity.NextEntity(); effectDuration = 7; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 2); break; case 4: eid = Entity.NextEntity(); effectDuration = 9; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 2); break; case 5: eid = Entity.NextEntity(); effectDuration = 9; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 2); break; case 6: eid = Entity.NextEntity(); effectDuration = 11; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 2); break; case 7: eid = Entity.NextEntity(); effectDuration = 13; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 2); break; case 8: eid = Entity.NextEntity(); effectDuration = 15; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 2); break; case 9: eid = Entity.NextEntity(); effectDuration = 17; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 2); break; case 10: eid = Entity.NextEntity(); effectDuration = 20; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); _game.SkillEntityFactory.CreateSkillDeployable(SkillType.PortableShop, _game.PositionComponent[GetPlayerID()], 2); break; default: break; #endregion } } break; #endregion #region Portable Shield case SkillType.PortableShield: { #region Skill Variables TimedEffect timedEffect; float effectDuration; PortableShield portableShield; Position shieldPosition; Sprite sprite; Collideable collideable; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); effectDuration = 5; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; case 2: eid = Entity.NextEntity(); effectDuration = 6; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; case 3: eid = Entity.NextEntity(); effectDuration = 7; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; case 4: eid = Entity.NextEntity(); effectDuration = 8; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; case 5: eid = Entity.NextEntity(); effectDuration = 9; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; case 6: eid = Entity.NextEntity(); effectDuration = 10; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; case 7: eid = Entity.NextEntity(); effectDuration = 11; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; case 8: eid = Entity.NextEntity(); effectDuration = 12; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; case 9: eid = Entity.NextEntity(); effectDuration = 13; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; case 10: eid = Entity.NextEntity(); effectDuration = 14; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); shieldPosition = _game.PositionComponent[GetPlayerID()]; shieldPosition.Radius = 100; portableShield = new PortableShield() { EntityID = eid, position = shieldPosition, }; _game.PortableShieldComponent.Add(eid, portableShield); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/BubbleShield"), SpriteBounds = new Rectangle(18, 34, 229, 136), }; _game.SpriteComponent.Add(eid, sprite); collideable = new Collideable() { EntityID = eid, RoomID = shieldPosition.RoomID, Bounds = new CircleBounds(shieldPosition.Center, shieldPosition.Radius), }; _game.CollisionComponent.Add(eid, collideable); _game.PositionComponent.Add(eid, shieldPosition); break; default: break; #endregion } } break; #endregion #region Motivate case SkillType.Motivate: { #region Skill Variables TimedEffect timedEffect; float effectDuration; Buff buffEffect; Sprite sprite; Position motivatePosition; #endregion switch (rank) { #region Checking Rank #region Rank 1 case 1: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 5, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion #region Rank 2 case 2: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 10, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion #region Rank 3 case 3: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 15, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion #region Rank 4 case 4: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 20, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion #region Rank 5 case 5: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 25, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion #region Rank 6 case 6: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 30, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion #region Rank 7 case 7: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 35, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion #region Rank 8 case 8: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 40, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion #region Rank 9 case 9: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 45, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion #region Rank 10 case 10: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/bubble"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); motivatePosition = _game.PositionComponent[GetPlayerID()]; motivatePosition.Center.X += 40; motivatePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, motivatePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, Health = 50, }; _game.BuffComponent.Add(eid, buffEffect); } break; #endregion default: break; #endregion } } break; #endregion #region Fall Back case SkillType.FallBack: { #region Skill Variables TimedEffect timedEffect; float effectDuration; Buff buffEffect; Sprite sprite; Position fallBackPosition; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 1, AttackMelee = -1, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 2: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 2, AttackMelee = -1, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 3: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 3, AttackMelee = -2, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 4: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 4, AttackMelee = -2, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 5: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 5, AttackMelee = -3, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 6: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 6, AttackMelee = -3, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 7: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 7, AttackMelee = -4, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 8: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 8, AttackMelee = -4, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 9: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 9, AttackMelee = -5, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 10: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/fallback"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); fallBackPosition = _game.PositionComponent[GetPlayerID()]; fallBackPosition.Center.X += 40; fallBackPosition.Center.Y -= 30; _game.PositionComponent.Add(eid, fallBackPosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = 10, AttackMelee = -5, }; _game.BuffComponent.Add(eid, buffEffect); } break; default: break; #endregion } } break; #endregion #region Charge case SkillType.Charge: { #region Skill Variables TimedEffect timedEffect; float effectDuration; Buff buffEffect; Sprite sprite; Position chargePosition; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -1, AttackMelee = 1, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 2: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -1, AttackMelee = 2, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 3: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -2, AttackMelee = 3, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 4: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -2, AttackMelee = 4, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 5: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -3, AttackMelee = 5, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 6: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -3, AttackMelee = 6, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 7: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -4, AttackMelee = 7, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 8: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -4, AttackMelee = 8, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 9: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -5, AttackMelee = 9, }; _game.BuffComponent.Add(eid, buffEffect); } break; case 10: eid = Entity.NextEntity(); effectDuration = 0.5f; timedEffect = new TimedEffect() { EntityID = eid, TotalDuration = effectDuration, TimeLeft = effectDuration }; _game.TimedEffectComponent.Add(eid, timedEffect); sprite = new Sprite() { EntityID = eid, SpriteSheet = _game.Content.Load<Texture2D>("Spritesheets/Skills/Effects/charge"), SpriteBounds = new Rectangle(0, 0, 76, 48), }; _game.SpriteComponent.Add(eid, sprite); chargePosition = _game.PositionComponent[GetPlayerID()]; chargePosition.Center.X += 40; chargePosition.Center.Y -= 30; _game.PositionComponent.Add(eid, chargePosition); foreach (Player player in _game.PlayerComponent.All) { eid = Entity.NextEntity(); buffEffect = new Buff() { EntityID = eid, TargetID = player.EntityID, DefenseMelee = -5, AttackMelee = 10, }; _game.BuffComponent.Add(eid, buffEffect); } break; default: break; #endregion } } break; #endregion default: break; #endregion } break; #endregion #region Space Pirate //This was the part contributed by Austin Murphy case Aggregate.SpacePiratePlayer: #region Race Variables #endregion switch (skillType) { #region Checking Skill Type #region AgilityBerserker case SkillType.AgilityBerserker: #region Skill Variables TimedEffect te1, te2; int speedIncrease = 1000; int attackDecrease = -50; float duration, cd; uint targetID; Buff buffeffect; int afterS = -500; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); duration = 10; cd = 55; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease, AttackMelee = attackDecrease }; _game.BuffComponent.Add(eid, buffeffect); break; case 2: eid = Entity.NextEntity(); duration = 15; cd = 50; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease }; _game.BuffComponent.Add(eid, buffeffect); break; case 3: eid = Entity.NextEntity(); duration = 20; cd = 45; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease }; _game.BuffComponent.Add(eid, buffeffect); break; case 4: eid = Entity.NextEntity(); duration = 25; cd = 40; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease }; _game.BuffComponent.Add(eid, buffeffect); break; case 5: eid = Entity.NextEntity(); duration = 30; cd = 35; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease }; _game.BuffComponent.Add(eid, buffeffect); break; case 6: eid = Entity.NextEntity(); duration = 35; cd = 30; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease }; _game.BuffComponent.Add(eid, buffeffect); break; case 7: eid = Entity.NextEntity(); duration = 40; cd = 25; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease }; _game.BuffComponent.Add(eid, buffeffect); break; case 8: eid = Entity.NextEntity(); duration = 45; cd = 20; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease }; _game.BuffComponent.Add(eid, buffeffect); break; case 9: eid = Entity.NextEntity(); duration = 50; cd = 15; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease }; _game.BuffComponent.Add(eid, buffeffect); break; case 10: eid = Entity.NextEntity(); duration = 55; cd = 5; targetID = GetPlayerID(); te1 = new TimedEffect() { EntityID = eid, TotalDuration = duration, TimeLeft = duration }; _game.TimedEffectComponent.Add(eid, te1); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, MovementSpeed = speedIncrease }; _game.BuffComponent.Add(eid, buffeffect); break; default: break; #endregion } break; #endregion #region DualWielding case SkillType.DualWielding: #region Skill Variables int offhand; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); offhand = -80; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; case 2: eid = Entity.NextEntity(); offhand = -74; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; case 3: eid = Entity.NextEntity(); offhand = -68; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; case 4: eid = Entity.NextEntity(); offhand = -62; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; case 5: eid = Entity.NextEntity(); offhand = -56; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; case 6: eid = Entity.NextEntity(); offhand = -50; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; case 7: eid = Entity.NextEntity(); offhand = -44; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; case 8: eid = Entity.NextEntity(); offhand = -38; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; case 9: eid = Entity.NextEntity(); offhand = -32; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; case 10: eid = Entity.NextEntity(); offhand = -20; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = offhand, AttackMelee = offhand }; _game.BuffComponent.Add(eid, buffeffect); break; default: break; #endregion } break; #endregion #region HeavyDrinker case SkillType.HeavyDrinker: #region Skill Variables int resistance; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); resistance = 5; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; case 2: eid = Entity.NextEntity(); resistance = 10; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; case 3: eid = Entity.NextEntity(); resistance = 20; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; case 4: eid = Entity.NextEntity(); resistance = 30; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; case 5: eid = Entity.NextEntity(); resistance = 40; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; case 6: eid = Entity.NextEntity(); resistance = 50; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; case 7: eid = Entity.NextEntity(); resistance = 60; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; case 8: eid = Entity.NextEntity(); resistance = 70; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; case 9: eid = Entity.NextEntity(); resistance = 80; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; case 10: eid = Entity.NextEntity(); resistance = 90; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, ResistPoison = resistance }; break; default: break; #endregion } break; #endregion #region TrickShot //Trick shot has been modified greatly to fit into our prototype game. case SkillType.TrickShot: #region Skill Variables int TSDamage; DirectDamage dd; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); TSDamage = 20; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; case 2: eid = Entity.NextEntity(); TSDamage = 40; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; case 3: eid = Entity.NextEntity(); TSDamage = 60; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; case 4: eid = Entity.NextEntity(); TSDamage = 80; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; case 5: eid = Entity.NextEntity(); TSDamage = 100; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; case 6: eid = Entity.NextEntity(); TSDamage = 120; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; case 7: eid = Entity.NextEntity(); TSDamage = 140; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; case 8: eid = Entity.NextEntity(); TSDamage = 160; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; case 9: eid = Entity.NextEntity(); TSDamage = 180; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; case 10: eid = Entity.NextEntity(); TSDamage = 200; dd = new DirectDamage() { EntityID = eid, Damage = TSDamage }; _game.DirectDamageComponent.Add(eid, dd); break; default: break; #endregion } break; #endregion #region PowerShot case SkillType.PowerShot: #region Skill Variables int PSDamageIncrease; InstantEffect ie; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); PSDamageIncrease = 10; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; case 2: eid = Entity.NextEntity(); PSDamageIncrease = 20; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; case 3: eid = Entity.NextEntity(); PSDamageIncrease = 30; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; case 4: eid = Entity.NextEntity(); PSDamageIncrease = 40; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; case 5: eid = Entity.NextEntity(); PSDamageIncrease = 50; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; case 6: eid = Entity.NextEntity(); PSDamageIncrease = 60; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; case 7: eid = Entity.NextEntity(); PSDamageIncrease = 70; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; case 8: eid = Entity.NextEntity(); PSDamageIncrease = 80; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; case 9: eid = Entity.NextEntity(); PSDamageIncrease = 90; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; case 10: eid = Entity.NextEntity(); PSDamageIncrease = 100; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackRanged = PSDamageIncrease }; _game.BuffComponent.Add(eid, buffeffect); ie = new InstantEffect() { EntityID = eid }; _game.InstantEffectComponent.Add(eid, ie); break; default: break; #endregion } break; #endregion #region EagleShot //EagleShot has been heavly modified to fit within our game prototype. case SkillType.EagleShot: #region Skill Variables int ESA; InstantEffect eie; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 10; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; case 2: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 20; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; case 3: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 30; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; case 4: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 40; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; case 5: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 50; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; case 6: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 60; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; case 7: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 70; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; case 8: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 80; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; case 9: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 90; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; case 10: eid = Entity.NextEntity(); targetID = GetPlayerID(); ESA = 100; eie = new InstantEffect() { EntityID = eid, }; _game.InstantEffectComponent.Add(eid, eie); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, WeaponAccuracy = ESA }; _game.BuffComponent.Add(eid, buffeffect); break; default: break; #endregion } break; #endregion #region Theft case SkillType.Theft: #region Skill Variables ChanceToSucceed cts; int prob; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); prob = 5; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 2: eid = Entity.NextEntity(); prob = 10; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 3: eid = Entity.NextEntity(); prob = 20; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 4: eid = Entity.NextEntity(); prob = 30; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 5: eid = Entity.NextEntity(); prob = 40; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 6: eid = Entity.NextEntity(); prob = 50; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 7: eid = Entity.NextEntity(); prob = 60; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 8: eid = Entity.NextEntity(); prob = 70; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 9: eid = Entity.NextEntity(); prob = 80; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 10: eid = Entity.NextEntity(); prob = 90; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; default: break; #endregion } break; #endregion #region Mug case SkillType.Mug: #region Skill Variables int mugA; #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); prob = 5; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; case 2: eid = Entity.NextEntity(); prob = 10; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; case 3: eid = Entity.NextEntity(); prob = 20; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; case 4: eid = Entity.NextEntity(); prob = 30; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; case 5: eid = Entity.NextEntity(); prob = 40; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; case 6: eid = Entity.NextEntity(); prob = 50; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; case 7: eid = Entity.NextEntity(); prob = 60; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; case 8: eid = Entity.NextEntity(); prob = 70; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; case 9: eid = Entity.NextEntity(); prob = 80; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; case 10: eid = Entity.NextEntity(); prob = 90; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); mugA = -75; targetID = GetPlayerID(); buffeffect = new Buff() { EntityID = eid, TargetID = targetID, AttackMelee = mugA }; _game.BuffComponent.Add(eid, buffeffect); break; default: break; #endregion } break; #endregion #region LockPick case SkillType.LockPicking: #region Skill Variables #endregion switch (rank) { #region Checking Rank case 1: eid = Entity.NextEntity(); prob = 5; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 2: eid = Entity.NextEntity(); prob = 10; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 3: eid = Entity.NextEntity(); prob = 20; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 4: eid = Entity.NextEntity(); prob = 30; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 5: eid = Entity.NextEntity(); prob = 40; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 6: eid = Entity.NextEntity(); prob = 50; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 7: eid = Entity.NextEntity(); prob = 60; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 8: eid = Entity.NextEntity(); prob = 70; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 9: eid = Entity.NextEntity(); prob = 80; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; case 10: eid = Entity.NextEntity(); prob = 90; cts = new ChanceToSucceed() { EntityID = eid, SuccessRateAsPercentage = prob }; _game.ChanceToSucceedComponent.Add(eid, cts); break; default: break; #endregion } break; #endregion default: break; #endregion } break; #endregion default: break; #endregion } }
public StatusEffects clone() { Stun stun = new Stun(); stun.duration = this.duration; return stun; }