コード例 #1
0
ファイル: NecromancerAI.cs プロジェクト: johan74/dwarfcorp
        public void SummonSkeleton(Vector3 pos)
        {
            Skeleton skeleton = EntityFactory.CreateEntity <Physics>("Skeleton", pos).GetRoot().GetComponent <Skeleton>();

            if (skeleton.Faction != null)
            {
                skeleton.Faction.Minions.Remove(skeleton.AI);
            }
            skeleton.Faction = this.Faction;
            this.Faction.AddMinion(skeleton.AI);
            Skeletons.Add(skeleton);
            Matrix animatePosition = skeleton.Sprite.LocalTransform;

            animatePosition.Translation = animatePosition.Translation - new Vector3(0, 1, 0);
            skeleton.Sprite.AnimationQueue.Add(new EaseMotion(1.0f, animatePosition, skeleton.Sprite.LocalTransform.Translation));
            Manager.World.ParticleManager.Trigger("green_flame", pos, Color.White, 10);
            Manager.World.ParticleManager.Trigger("dirt_particle", pos, Color.White, 10);

            var myEnvoy = Faction.TradeEnvoys.Where(envoy => envoy.Creatures.Contains(this)).FirstOrDefault();

            if (myEnvoy != null)
            {
                myEnvoy.Creatures.Add(skeleton.AI);
            }

            var myWarParty = Faction.WarParties.Where(party => party.Creatures.Contains(this)).FirstOrDefault();

            if (myWarParty != null)
            {
                myWarParty.Creatures.Add(skeleton.AI);
            }
        }
コード例 #2
0
        public void SummonSkeleton(Vector3 pos)
        {
            Skeleton skeleton = EntityFactory.CreateEntity <Physics>("Skeleton", pos).GetRoot().GetComponent <Skeleton>();

            Skeletons.Add(skeleton);
            Matrix animatePosition = skeleton.Sprite.LocalTransform;

            animatePosition.Translation = animatePosition.Translation - new Vector3(0, 1, 0);
            skeleton.Sprite.AnimationQueue.Add(new EaseMotion(1.0f, animatePosition, skeleton.Sprite.LocalTransform.Translation));
            Manager.World.ParticleManager.Trigger("green_flame", pos, Color.White, 10);
            Manager.World.ParticleManager.Trigger("dirt_particle", pos, Color.White, 10);
        }
コード例 #3
0
        /// <summary>
        /// Parse a Skeletons tag
        /// </summary>
        protected void ParseSkeletons()
        {
            SaxToken?token = Match(XmlNodeType.Element, TagNames.Skeletons);

            Skeletons = new Skeletons();
            CopyTokenAttributes(token, Skeletons);
            while (TestLookahead(XmlNodeType.Element, TagNames.Skeleton))
            {   //Parse each single Skeleton
                Skeleton skeleton = ParseSkeleton();
                //Add it to the model
                Skeletons.Add(skeleton);
            }
            token = Match(XmlNodeType.EndElement, TagNames.Skeletons);
        }
コード例 #4
0
ファイル: NecromancerAI.cs プロジェクト: Solsund/dwarfcorp
        public void SummonSkeleton()
        {
            Vector3  pos      = Position + MathFunctions.RandVector3Box(-1.0f, 1.0f, 0.0f, 0.0f, -1.0f, 1.0f);
            Skeleton skeleton = EntityFactory.GenerateSkeleton(pos, Manager, GameState.Game.Content,
                                                               GameState.Game.GraphicsDevice, Chunks, PlayState.Camera, Faction, PlayState.PlanService,
                                                               this.Creature.Allies).GetChildrenOfType <Skeleton>().FirstOrDefault();

            Skeletons.Add(skeleton);
            Matrix animatePosition = skeleton.Sprite.LocalTransform;

            animatePosition.Translation = animatePosition.Translation - new Vector3(0, 1, 0);
            skeleton.Sprite.AnimationQueue.Add(new EaseMotion(1.0f, animatePosition, skeleton.Sprite.LocalTransform.Translation));
            PlayState.ParticleManager.Trigger("green_flame", pos, Color.White, 10);
            SoundManager.PlaySound(ContentPaths.Audio.tinkle, pos, true);
        }
コード例 #5
0
        private void KinectSensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            Microsoft.Kinect.Skeleton[] skeletons = new Microsoft.Kinect.Skeleton[0];

            using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
            {
                if (skeletonFrame != null)
                {
                    skeletons = new Microsoft.Kinect.Skeleton[skeletonFrame.SkeletonArrayLength];
                    skeletonFrame.CopySkeletonDataTo(skeletons);

                    Skeletons.Clear();
                    foreach (Microsoft.Kinect.Skeleton skeleton in skeletons)
                    {
                        Skeletons.Add(new Skeleton(skeleton));
                    }
                }
            }

            OnSkeletonFrameReady();
        }