Ejemplo n.º 1
0
            public bool CreateNewManaSprite(Faction faction, Vector3 position, WorldManager world)
            {
                if (ManaSprite != null)
                {
                    ManaSprite.Die();
                    world.ParticleManager.Trigger("star_particle", position, Color.White, 5);
                    SoundManager.PlaySound(ContentPaths.Audio.wurp, position, true);
                    ManaSprite = null;
                    ReCreateTimer.Reset();
                }
                if (ReCreateTimer.HasTriggered)
                {
                    if (faction.RemoveResources(
                            new List <ResourceAmount>()
                    {
                        new ResourceAmount(ResourceLibrary.ResourceType.Mana)
                    }, position + Vector3.Up * 0.5f))
                    {
                        ManaSprite             = EntityFactory.CreateEntity <ResourceEntity>("Mana Resource", position);
                        ManaSprite.Gravity     = Vector3.Zero;
                        ManaSprite.CollideMode = Physics.CollisionMode.None;

                        ManaSprite.Tags.Clear();
                        return(true);
                    }
                }

                return(false);
            }
Ejemplo n.º 2
0
 public void Update(DwarfTime time, WorldManager world)
 {
     ChargeTimer.Update(time);
     if (ManaSprite != null && Charge > 0.0f && world.Master.Spells.Mana < world.Master.Spells.MaxMana)
     {
         if (ChargeTimer.HasTriggered)
         {
             SoundManager.PlaySound(ContentPaths.Audio.tinkle, ManaSprite.Position);
             IndicatorManager.DrawIndicator("+" + (int)ChargeRate + " M", ManaSprite.Position, 1.0f, Color.Green);
             world.ParticleManager.Trigger("star_particle", ManaSprite.Position, Color.White, 1);
             Charge -= ChargeRate;
             world.Master.Spells.Recharge(ChargeRate);
         }
     }
     else if (Charge <= 0.01f)
     {
         ReCreateTimer.Update(time);
     }
 }