コード例 #1
0
        public override void Execute(AbstractPerson ap)
        {
            //            Debug.Log(ap.obj.GetInstanceID()+": "+ap.IsConst);
            //如果不可选定(硬直),告辞
            //数值
            //            Debug.Log( ap.name + "收到" + this.damage + "伤害");

            //   BloodChange


            if (!ap.IsConst)
            {
                ap.TakeBattleEffect(new DamageNumberEffect(this.damage, 0.3f * ap.Scanler, Color.red, this.dir, 1f, UnityEngine.Random.Range(10, 60)));
            }


            CEventCenter.BroadMessage(Message.M_BloodChange(ap.obj), -this.damage);
            ap.OnTakeDamage(this.damage);
            if (!(ap is Player))
            {
//                Debug.Log(Message.M_ChangeSmallLevel + " " + this.damage);
                CEventCenter.BroadMessage(Message.M_ChangeSmallLevel, this.damage);
            }
            this.Release(ap);
        }
コード例 #2
0
ファイル: TestEvent.cs プロジェクト: Elisa758/Checkpoint2
        public void TestGetAgenda()
        {
            Event hackathon = new Event("hackathon");

            hackathon.StartTime = new DateTime(2020, 02, 13);
            hackathon.EndTime   = new DateTime(2020, 02, 15);

            Event rentree = new Event("rentrée");

            rentree.StartTime = new DateTime(2019, 12, 09);
            rentree.EndTime   = new DateTime(2019, 12, 10);

            List <Event> events = new List <Event>();

            events.Add(rentree);
            events.Add(hackathon);

            AbstractPerson person = new AbstractPerson();

            person.Agenda = events;

            DateTime date1 = new DateTime(2019, 01, 10);
            DateTime date2 = new DateTime(2020, 03, 10);

            Assert.AreEqual("rentrée\nhackathon\n", person.GetEvents(date1, date2, events));
        }
コード例 #3
0
        public void TestEventList()
        {
            List <Event> Agenda = new List <Event>();
            Event        event1 = new Event(201, "event201", Convert.ToDateTime(02 - 02 - 2020), Convert.ToDateTime(03 - 03 - 2020), "Lorem ipsum");
            Event        event2 = new Event(202, "event202", Convert.ToDateTime(03 - 03 - 2020), Convert.ToDateTime(04 - 04 - 2020), "Lorem ipsum");
            Event        event3 = new Event(203, "event203", Convert.ToDateTime(04 - 04 - 2020), Convert.ToDateTime(05 - 05 - 2020), "Lorem ipsum");
            Event        event4 = new Event(204, "event204", Convert.ToDateTime(05 - 05 - 2020), Convert.ToDateTime(06 - 06 - 2020), "Lorem ipsum");
            Event        event5 = new Event(205, "event205", Convert.ToDateTime(06 - 06 - 2020), Convert.ToDateTime(06 - 06 - 2020), "Lorem ipsum");

            Agenda.Add(event1);
            Agenda.Add(event2);
            Agenda.Add(event3);
            Agenda.Add(event4);
            Agenda.Add(event5);

            IEnumerable <AbstractPerson> Subordinates = new List <AbstractPerson>();

            AbstractPerson newStudent = PersonFactory.CreatePerson("Student200", "Student", "3", Agenda, 5, Subordinates);

            List <Event> Student200Agenda = Database.GetEventsList("Student200", Convert.ToDateTime(03 - 03 - 2020), Convert.ToDateTime(05 - 05 - 2020));

            List <Event> ResultAgenda = new List <Event>();

            ResultAgenda.Add(event2);
            ResultAgenda.Add(event3);
            ResultAgenda.Add(event4);

            Assert.AreEqual(ResultAgenda, Student200Agenda);
        }
コード例 #4
0
        public void T7()
        {
            AbstractPerson person = Auto.Make <AbstractPerson>();
            var            i      = person.NonAbstractIntId;

            Assert.That(i, Is.EqualTo(int.MaxValue));
        }
コード例 #5
0
        private void OnTriggerEntry(Collider2D col)
        {
            var col2d = obj.GetComponent <Collider2D>();

            if (col2d.IsTouchingLayers(1 << LayerMask.NameToLayer("BasicPlatform")))
            {
//                Debug.Log("碰到地面");
                DestoryThis();
                return;
            }
            var ap = AbstractPerson.GetInstance(col.gameObject);

            if (ap == null)
            {
                return;
            }

            if (ap is Player && this.origin is Player)
            {
//                Debug.Log($"两个都是Player:[{ap.CharacterName}][{origin.CharacterName}]");
                return;
            }
            if (!(ap is Player) && !(this.origin is Player))
            {
//                Debug.Log($"两个都不是Player:[{ap.CharacterName}][{origin.CharacterName}]");
                return;
            }

//            Debug.Log(this.origin.CharacterName+" 攻击 "+ap.characterInfoInfo);

            this.origin.OnCauseDamage(damage);
            ap.PlayAcceptEffects(origin);
            DestoryThis();
        }
コード例 #6
0
 public DirectLineBullet(int damage, Vector3 dir, Vector3 pos, AbstractPerson origin, string path, float speed = 8f, float maxLife = 6f, Transform parent = null)
     : base(damage, origin, path, pos, maxLife, parent)
 {
     this.dir   = dir;
     this.speed = speed;
     AudioMgr.Instance.PlayEffect(AudioPath.beiji, this.obj.transform.position);
 }
コード例 #7
0
 /// <summary>
 /// 触发函数
 /// </summary>
 /// <param name="self">使用技能的单位</param>
 /// <param name="ignoreInput">是否屏蔽技能输入</param>
 public void Execute(AbstractPerson self, bool ignoreInput = false, float startTime = 0)
 {
     if (!self.InputOk)
     {
         return;
     }
     if (ignoreInput)
     {
         self.IgnoreInput(this.lastTime);
         return;
     }
     this.startTime = startTime;
     if (this.isUsed == true)
     {
         foreach (var trigger in skillTriggers)
         {
             trigger.Release();
         }
     }
     else
     {
         this.isUsed = true;
     }
     if (onSkillBegin != null)
     {
         onSkillBegin(this);
     }
     foreach (var trigger in skillTriggers)
     {
         trigger.Execute(self);
     }
     MainLoop.Instance.ExecuteLater(Reset, this.lastTime);
 }
コード例 #8
0
        public void For_Method_Returns_Correct_Component_When_Service_Is_Abstract()
        {
            // arrange
            Dictionary <string, string> mappings = new Dictionary <string, string>
            {
                { "name", "name" },
                { "age", "age" }
            };

            // act
            var component = PropertyResolvingComponent.For <AbstractPerson>()
                            .ImplementedBy <Person>()
                            .DependsOn(mappings)
                            .WithLifestyle(LifestyleType.Transient);

            m_container.Register(component);

            // assert
            AbstractPerson abstractPerson = m_container.Resolve <AbstractPerson>();

            Assert.IsInstanceOf <Person>(abstractPerson);

            Person person = (Person)abstractPerson;

            Assert.AreEqual("Mihir", person.Name);
            Assert.AreEqual(31, person.PersonAge);
            Assert.IsNull(person.PlaceOfBirth);
        }
コード例 #9
0
 private void End(AbstractPerson ap)
 {
     if (this.empty)
     {
         UnityEngine.Object.Destroy(this.empty);
     }
 }
コード例 #10
0
        private void OnTriggerEntry(Collider2D col)
        {
            var col2d = obj.GetComponent <Collider2D>();

            if (col2d.IsTouchingLayers(1 << LayerMask.NameToLayer("BasicPlatform")))
            {
                Debug.Log("碰到地面");
                DestoryThis();
                return;
            }
            var ap = AbstractPerson.GetInstance(col.gameObject);

            if (ap == null)
            {
                return;
            }

            if (ap is Player && this.origin is Player)
            {
                Debug.Log("两个都是Player");
                return;
            }
            if (!(ap is Player) && !(this.origin is Player))
            {
                Debug.Log("两个都不是Player");
                return;
            }


            this.origin.OnCauseDamage(damage);
            ap.TakeBattleEffect(this.origin.AttackEffect);
            DestoryThis();
        }
コード例 #11
0
 public override void Execute(AbstractPerson self)
 {
     this.dir = new Vector2(self.Dir * Mathf.Abs(this.dir.x), this.dir.y);
     Debug.Log(this.maxLife);
     this.bullet = new DirectLineBullet(GameMath.Damage(self.Attack), this.dir, self.Pos + new Vector3(0, 0.3f * self.Scanler, 0)
                                        , self, DirPath.BulletDir + this.resName, speed: this.speed, maxLife: this.maxLife);
 }
コード例 #12
0
ファイル: TestEvent.cs プロジェクト: Elisa758/Checkpoint2
        public void SetUp()
        {
            Cursus csharp = new Cursus();

            AbstractPerson student1 = PersonFactory.Create("Tom", null, null, csharp);
            AbstractPerson student2 = PersonFactory.Create("Lys", null, null, csharp);
            AbstractPerson student3 = PersonFactory.Create("Nathaniel", null, null, csharp);


            List <AbstractPerson> _students = new List <AbstractPerson>();

            _students.Add(student1);
            _students.Add(student2);
            _students.Add(student3);

            //List<AbstractPerson> _instructors = new List<AbstractPerson>();

            AbstractPerson _instructor = PersonFactory.Create("Instructor1", _students);

            /*Cursus csharp = new Cursus();
             * _students = new List<AbstractPerson>
             * {
             *      new Students("Tom",csharp),
             *      new Students("Lys", csharp),
             *      new Students("Nathaniel",csharp)
             * };
             *
             * _instructors = new List<AbstractPerson>
             * {
             *      new Instructor("Instructor",  _students)
             * };
             *
             * _lead = new LeadInstructor("Chef", _instructors);*/
        }
コード例 #13
0
        private void OnTriggerEnter(Collider2D col)
        {
            var hitPerson = AbstractPerson.GetInstance(col.gameObject);

            if (hitPerson == null)
            {
//                Debug.Log("打击人物为空");
                return;
            }
            else
            {
                Debug.Log("打击到”" + hitPerson.CharacterName);
            }

            switch (damageType)
            {
            case DamageType.PlayerToEnemy:
                if (hitPerson is Player)
                {
                    break;
                }
                hitPerson.PlayAcceptEffects(self);
                break;

            case DamageType.EnemyToPlayer:
                if (hitPerson is Player)
                {
                    hitPerson.PlayAcceptEffects(self);
                }

                break;
            }
        }
コード例 #14
0
 public override void OnStart()
 {
     player    = GlobalVar.G_Player;
     actor     = gameObject.GetComponent <Actor>();
     _animator = gameObject.GetComponent <Animator>();
     self      = AbstractPerson.GetInstance(gameObject);
     _animator.Play(Animator.StringToHash(walkAni));
 }
コード例 #15
0
 public void AddToGoto(AbstractPerson agent, Enums.ContainerType containerType)
 {
     lock (gotoAgents)
     {
         gotoAgents.Add(agent);
         gotoContainers.Add(containerType);
     }
 }
コード例 #16
0
 public override void OnStart()
 {
     base.OnStart();
     actor = gameObject.GetComponent <Actor>();
     self  = AbstractPerson.GetInstance(gameObject);
     gameObject.GetComponent <Animator>().Play(Animator.StringToHash(walkAni));
     timer = 0;
 }
コード例 #17
0
        public void T5()
        {
            AbstractPerson person = Auto.Make <AbstractPerson>();
            var            i      = person.Readonly;

            Assert.That(person, Is.Not.Null);
            Assert.That(i, Is.EqualTo(int.MaxValue));
        }
コード例 #18
0
        public void T6()
        {
            AbstractPerson person = Auto.Make <AbstractPerson>();
            var            i      = person.NonAbstractBasicMethod(1);

            Assert.That(person, Is.Not.Null);
            Assert.That(i, Is.Null);
        }
コード例 #19
0
        public void T2()
        {
            AbstractPerson person = Auto.Make <AbstractPerson>().Object;
            var            i      = person.GenericMethod <string, string>("arg1", "arg2");

            Assert.That(person, Is.Not.Null);
            Assert.That(i, Is.EqualTo("string"));
        }
コード例 #20
0
        public void T4()
        {
            AbstractPerson person = Auto.Make <AbstractPerson>().Object;
            var            i      = person.BasicMethod(1);

            Assert.That(person, Is.Not.Null);
            Assert.That(i, Is.Not.Null);
        }
コード例 #21
0
        public void T1()
        {
            AbstractPerson person = Auto.Make <AbstractPerson>().Object;
            var            i      = person["string", 1];

            Assert.That(person, Is.Not.Null);
            Assert.That(i, Is.EqualTo(int.MaxValue));
        }
コード例 #22
0
ファイル: TestEvent.cs プロジェクト: Elisa758/Checkpoint2
        public void TestCreateStudents()
        {
            Cursus         csharp  = new Cursus();
            AbstractPerson student = PersonFactory.Create("Dan");

            string typeName = typeof(Students).ToString();

            Assert.AreEqual(typeName, student.GetType().ToString());
        }
コード例 #23
0
 public override void OnTakeDamage(AbstractPerson takeDamageFrom, int damage)
 {
     if (IsConst)
     {
         return;
     }
     base.OnTakeDamage(takeDamageFrom, damage);
     CEventCenter.BroadMessage(Message.M_PlayerBloodChange, -Mathf.Abs(damage));
 }
コード例 #24
0
 private void Update(AbstractPerson ap)
 {
     if (empty == null)
     {
         Debug.Log("伤害检测物体为空");
         return;
     }
     empty.transform.Rotate(new Vector3(0, 0, this.speed));
 }
コード例 #25
0
        public override void Execute(AbstractPerson ap)
        {
            ScreenShake.Instance.enabled = false;
            ScreenShake.Instance.enabled = true;

            ScreenShake.Instance.shakeDir  = this.howmuch * Vector3.one;
            ScreenShake.Instance.shakeTime = this.time;
            this.Release(ap);
        }
コード例 #26
0
        public override void OnStart()
        {
            self = AbstractPerson.GetInstance(gameObject);
            SkillInfoAsset.Vector3Cache = GlobalVar.G_Player.Pos;
//			Debug.Log($"写入用户数据:【{SkillInfoAsset.skillName.StringValue}】" + SkillInfoAsset.Vector3Cache);
            self.RunSkill(SkillInfoAsset);
            timer = 0;
            gameObject.GetComponent <Actor>()._velocity = Vector3.zero;
        }
コード例 #27
0
 public BloodBarUI(AbstractPerson ap)
 {
     this.ap = ap;
     base.Create(DirPath.LittleUiDir + UiName.Slider_BloodBar);
     m_TransFrom.position = Camera.main.WorldToScreenPoint(ap.Pos + new Vector3(0, ap.Scanler * 0.3f, 0));
     this.slider          = m_TransFrom.GetComponent <Slider>();
     this.slider.value    = (float)this.ap.Hp / this.ap.MaxHp;
     Show();
 }
コード例 #28
0
        public override void Execute(AbstractPerson ap)
        {
            this.ap = ap;
            sr      = ap.obj.GetComponent <SpriteRenderer>();
            int x = (int)(this.lastTime / this.durTime);
            int n = x % 2 == 0 ? x + 1 : x;

            MainLoop.Instance.ExecuteEverySeconds(_Execute, n, this.durTime, _Reset);
        }
コード例 #29
0
        public override float OnTakeDamage(AbstractPerson takeDamageFrom, BasicDamage damage)
        {
            var realDamage = base.OnTakeDamage(takeDamageFrom, damage);

            if (realDamage > 0)
            {
                headBloodBar.Value -= realDamage;
            }
            return(realDamage);
        }
コード例 #30
0
    void OnTriggerExit2D(Collider2D col)
    {
        if (null == AbstractPerson.GetInstance <Player>(col.gameObject))
        {
            return;
        }
        Game.Const.DefaultData.PlayerPos = this.newPosition;

        SceneMgr.LoadScene(newSceneName, newUIName);
    }
コード例 #31
0
 public void AddToGoto(AbstractPerson agent, Enums.ContainerType containerType)
 {
     lock (gotoAgents)
     {
         gotoAgents.Add(agent);
         gotoContainers.Add(containerType);
     }
 }