コード例 #1
0
ファイル: EntityFactory.cs プロジェクト: tivtag/Fly
        public static HomePlanet CreateHomePlanet(Empire empire, float radius, float density, bool isStatic = false, int segmentCount = 32)
        {
            Color color  = Color.DarkGray;
            var   planet = new HomePlanet();

            planet.OwnedBy.Empire = empire;
            planet.LifeStatus.MaximumLifePoints = 500;
            planet.LifeStatus.Refill();

            planet.DrawStrategy = new PhysicsCirlceDrawStrategy()
            {
                SegmentCount = segmentCount,
                Color        = color
            };

            planet.Physics.FixtureDescription = new CircleDescription()
            {
                Radius   = radius,
                Density  = density,
                IsStatic = isStatic
            };

            planet.LifeStatus.Destroyed += sender => {
                if (planet.Scene != null)
                {
                    Behave.This(planet)
                    .BlendOut(forSeconds: 10)
                    .Despawn();
                }
            };

            return(planet);
        }
コード例 #2
0
ファイル: EntityFactory.cs プロジェクト: tivtag/Fly
        private static BlackHole CreateBlackHole(float density, float blackHoleActiveTime)
        {
            var hole = new BlackHole()
            {
                Name = "Black Hole"
            };

            hole.DrawStrategy = new PhysicsShapeDrawStrategy()
            {
                Color = Color.Violet
            };

            hole.Physics.FixtureDescription = new CircleDescription()
            {
                Radius            = 2.0f,
                Density           = density,
                CollisionCategory = Category.None
            };

            Behave.This(hole)
            .BlendIn(forSeconds: 0.7f)
            .AndAtTheSameTime()
            .After(blackHoleActiveTime)
            .BlendOut(forSeconds: 1)
            .Despawn();

            return(hole);
        }
コード例 #3
0
ファイル: Bullet.cs プロジェクト: tivtag/Fly
        private void OnDamageApplied(Damaging sender, IFlyEntity e)
        {
            // ToDo: Add bounce support!

            Behave.This(this)
            .BlendOut(forSeconds: 1)
            .Despawn();
        }
コード例 #4
0
        private void OnBroken(Breakable sender)
        {
            var asteroid = this;

            Behave.This(asteroid)
            .After(DespawnTime)
            .BlendOut(forSeconds: 3)
            .Despawn()
            .AndAtTheSameTime()
            .Spawn(CreateMineral, asteroid.Destroyable.MaximumLifePoints / 3);
        }
コード例 #5
0
ファイル: BehaveTests.cs プロジェクト: IamIpanda/Hell1024
        public void MoveDownTest()
        {
            var c = CoreGenerator.generateCore();
            var m = new Movement();
            var b = new Behave(m, c);

            Console.WriteLine(@"From: ");
            Console.WriteLine(c.ToString());
            Console.WriteLine(@"To: ");
            Console.Write(b.MoveDown().ToString());
            Console.WriteLine(@"Moves: ");
            Console.Write(m.ToString());
        }
コード例 #6
0
ファイル: Bullet.cs プロジェクト: tivtag/Fly
        public Bullet(float activeTime)
        {
            this.Components.BeginSetup();
            this.Components.Add(this.damaging);
            this.Components.Add(this.behaveable);
            this.Components.EndSetup();

            Behave.This(this)
            .After(activeTime)
            .BlendOut(forSeconds: 1)
            .Despawn();

            this.damaging.DamagedOther += this.OnDamageApplied;
        }
コード例 #7
0
        private static IFlyEntity CreateMineral(Asteroid a)
        {
            var mineral = EntityFactory.CreateMineral();

            mineral.Position = a.Physics.PhysicsPosition;

            Behave.This(mineral)
            .BlendIn(forSeconds: 1)
            .AndAtTheSameTime()
            .After(seconds: 10)
            .BlendOut(forSeconds: 2)
            .Despawn();

            return(mineral);
        }
コード例 #8
0
 // Start is called before the first frame update
 void Start()
 {
     OBehave = Behave.idle;
 }
コード例 #9
0
ファイル: KamikazeEnemy.cs プロジェクト: tivtag/Fly
 private void Despawn()
 {
     Behave.This(this)
     .BlendOut(forSeconds: 0.33f)
     .Despawn();
 }
コード例 #10
0
ファイル: TractorBeam.cs プロジェクト: tivtag/Fly
 private void RemoveFromScene()
 {
     Behave.This(this)
     .BlendOut(forSeconds: 0.5f)
     .Despawn();
 }