コード例 #1
0
ファイル: HomeBuilding.cs プロジェクト: Austech/HGlueSim
 public override void Use(EntityBase user)
 {
     base.Use(user);
     if (user is Worker)
     {
         var workerCast = (Worker) user;
         workerCast.ResourceCount = 0;
     }
 }
コード例 #2
0
ファイル: GlueFactory.cs プロジェクト: Austech/HGlueSim
 public override void Use(EntityBase user)
 {
     base.Use(user);
     //TODO: Blood/Glue effect
     for (int i = 0; i < 5; i++)
     {
         MyGameMode.AddEffect(new GlueParticle(Position));
     }
 }
コード例 #3
0
ファイル: Projectile.cs プロジェクト: Austech/HGlueSim
        public Projectile()
        {
            Damage = 0;
            Element = Entity.DamageElement.Normal;
            Target = null;
            Speed = 0;

            toDraw = new AnimatedSprite(10);

            toDraw.Sprites = new List<Sprite>(ExternalResources.GetSprites("Resources/Sprites/Projectiles"));
            toDraw.Reset();
        }
コード例 #4
0
ファイル: Resources.cs プロジェクト: Austech/HGlueSim
        public override void Use(EntityBase user)
        {
            base.Use(user);
            if (user is Worker)
            {
                var workerCast = (Worker) user;

                if (!workerCast.IsHoldingResources)
                {
                    byte toGive = ResourcesPerTrip;
                    if (RemainingResources < ResourcesPerTrip)
                    {
                        toGive = (byte) RemainingResources;
                    }
                    RemainingResources -= toGive;

                    workerCast.GiveResource(ResourceType, toGive);
                }
            }
        }
コード例 #5
0
ファイル: EntityBase.cs プロジェクト: Austech/HGlueSim
        protected EntityBase()
        {
            HotkeyString = "";

            Neutral = false;
            HasBeenViewed = false;
            Team = 0;

            Type = Entity.EntityType.Unit;
            BoundsSize = new Vector2f(20, 20);
            WorldId = 0;
            EntityToUse = null;
            WorldEntities = null;
            rallyPoints = new List<Entity.RallyPoint>();
            Health = 0;
            MaxHealth = 0;
            Position = new Vector2f();
            Energy = 0;
            MaxHealth = 0;
            EnergyRegenRate = 0;
            MyGameMode = null;
        }
コード例 #6
0
ファイル: StandardMelee.cs プロジェクト: Austech/HGlueSim
        private void sendUseCommand(EntityBase entity, bool rallyReset = true)
        {
            if (selectedUnits != null)
            {
                var idList = new List<ushort>();
                foreach (EntityBase entityBase in selectedUnits)
                {
                    idList.Add(entityBase.WorldId);
                }
                if (idList.Count > 0)
                {
                    InputHandler.SendEntityUseChange(idList.ToArray(), entity.WorldId, rallyReset);
                }

                PlayUseSound(ExternalResources.UseSounds.CliffUsing);
            }
        }
コード例 #7
0
ファイル: StandardMelee.cs プロジェクト: Austech/HGlueSim
        protected void FilterSelectedUnits(ref EntityBase[] listArray)
        {
            if (listArray != null)
            {
                var list = new List<EntityBase>(listArray);
                foreach (EntityBase entityBase in listArray)
                {
                    if (entities.ContainsValue(entityBase) == false || unitFilter(entityBase))
                        list.Remove(entityBase);
                }

                listArray = list.ToArray();
            }
        }
コード例 #8
0
ファイル: StandardMelee.cs プロジェクト: Austech/HGlueSim
 protected bool unitFilter(EntityBase entity)
 {
     return entity.Team != myPlayer.Team || entity.Neutral;
 }
コード例 #9
0
ファイル: Projectile.cs プロジェクト: Austech/HGlueSim
 public virtual void OnHit(EntityBase entity)
 {
     //play sound or something
 }
コード例 #10
0
ファイル: StandardMelee.cs プロジェクト: Austech/HGlueSim
 public HotkeySheet GetHotkeySheet(EntityBase entity)
 {
     return Settings.GetSheet(entity.HotkeyString);
 }
コード例 #11
0
ファイル: Projectile.cs プロジェクト: Austech/HGlueSim
        protected override void ParseUpdate(MemoryStream memoryStream)
        {
            var reader = new BinaryReader(memoryStream);
            Damage = reader.ReadSingle();
            Element = (Entity.DamageElement) reader.ReadByte();
            Speed = reader.ReadSingle();
            Position = new Vector2f(reader.ReadSingle(), reader.ReadSingle());
            var targetId = reader.ReadUInt16();

            if(MyGameMode.EntityBases.ContainsKey(targetId))
            {
                Target = MyGameMode.EntityBases[targetId];
            }
        }
コード例 #12
0
ファイル: UnitBase.cs プロジェクト: Austech/HGlueSim
 protected virtual void onAttack(EntityBase ent)
 {
     if (!RangedUnit) //Happy asshole?
     {
         ent.OnTakeDamage(StandardAttackDamage, StandardAttackElement);
     }
     //Ranged units send projectiles, this is handled in the game mode, and is not needed to do prediction here
 }
コード例 #13
0
ファイル: Worker.cs プロジェクト: Austech/HGlueSim
 public override void OnUseChange(EntityBase entity)
 {
     base.OnUseChange(entity);
     MyGameMode.PlayUseSound(ExternalResources.UseSounds.CliffUsing);
 }
コード例 #14
0
ファイル: GameModeBase.cs プロジェクト: Austech/HGlueSim
 private void AddEntity(EntityBase entity, ushort id)
 {
     if (entities.ContainsKey(id) == false)
     {
         entity.MyGameMode = this;
         entity.WorldId = id;
         entities.Add(id, entity);
     }
 }
コード例 #15
0
ファイル: EntityBase.cs プロジェクト: Austech/HGlueSim
        private void ParseEntityToUseChange(MemoryStream memoryStream)
        {
            var reader = new BinaryReader(memoryStream);
            bool isNotNull = reader.ReadBoolean();

            if (isNotNull)
            {
                ushort id = reader.ReadUInt16();
                if (WorldEntities.ContainsKey(id))
                {
                    EntityToUse = WorldEntities[id];
                    OnUseChange(EntityToUse);
                }
            }
            else
            {
                EntityToUse = null;
            }
        }
コード例 #16
0
ファイル: EntityBase.cs プロジェクト: Austech/HGlueSim
 public virtual void Use(EntityBase user)
 {
     //minerals may give the user minerals to hold, etc
 }
コード例 #17
0
ファイル: EntityBase.cs プロジェクト: Austech/HGlueSim
 public virtual void OnUseChange(EntityBase entity)
 {
     //Play a sound or something
 }