public float GetAggregateMultiplier(Helper.StatIndex stat) { float aggregateMultiplier = 1; //default: stat multiplier remains unchanged for (int effect = 0; effect < activeEffects[(int)stat].Count; effect++) { aggregateMultiplier *= activeEffects[(int)stat][effect].X; } return(aggregateMultiplier); }
//constructor public StatCan(Vector2 myPosition, Texture2D mySprite, Helper.StatIndex myStat, float myValue, float myDuration = 0) { position = myPosition; sprite = mySprite; svalue = myValue; duration = myDuration; stat = myStat; switch (stat) //decide color { case Helper.StatIndex.health: color = Color.Chartreuse; break; case Helper.StatIndex.fuel: color = Color.Gold; break; case Helper.StatIndex.healthRegen: color = Color.Chartreuse; break; case Helper.StatIndex.fuelRegen: color = Color.Gold; break; case Helper.StatIndex.gravity: color = Color.Thistle; break; case Helper.StatIndex.speed: color = Color.CornflowerBlue; break; case Helper.StatIndex.repulsor: color = Color.DarkViolet; break; default: color = Color.White; break; } hitbox = new Rectangle((int)position.X, (int)position.Y, (int)sprite.Width, (int)sprite.Height); enabled = true; }