コード例 #1
0
        private void ApplyExplodeForce(Virus virus)
        {
            float   radius = Body.FixtureList.First().Shape.Radius;
            Vector2 force, direction;

            force = direction = virus.Position - this.Position;

            direction.Normalize();

            force /= radius * 2;
            force += direction / 2;
            virus.Body.ApplyForce(force * FORCE_FACTOR);
        }
コード例 #2
0
 public bool VirusCollide(Virus virus)
 {
     _virusResistance--;
     if (_virusResistance == 0)
     {
         PlayWindow.LastGoodCellPosition = Position;
         _infected = true;
         _virusList.Add(virus);
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #3
0
        public void ExplodeByVirus()
        {
            float radius = Body.FixtureList.First().Shape.Radius;

            for (int i = 0; i < 1 + _virusList.Count; i++)
            {
                Vector2 position;
                position.X = this.Position.X - radius / 2 + (float)Shared.Random.NextDouble() * radius;
                position.Y = this.Position.Y - radius / 2 + (float)Shared.Random.NextDouble() * radius;

                Virus newVirus = new Virus(PlayWindow, position);
                PlayWindow.RegisterVirus(newVirus);

                ApplyExplodeForce(newVirus);
            }

            foreach (var item in _virusList)
            {
                PlayWindow.RemoveVirus(item);
            }
            PlayWindow.RemoveGoodCell(this);
        }
コード例 #4
0
ファイル: LevelParser.cs プロジェクト: em-mo/sommarhack
 private void HandleEnemy(Point currentPoint, Color dotColor, Color[] colorData, Level level)
 {
     Point position = GetCenterPoint(currentPoint, dotColor, colorData);
     Virus virus = new Virus(PlayWindow, PointToPosition(position));
     level.AddEnemy(virus);
 }
コード例 #5
0
ファイル: GoodCell.cs プロジェクト: em-mo/sommarhack
        private void ApplyExplodeForce(Virus virus)
        {
            float radius = Body.FixtureList.First().Shape.Radius;
            Vector2 force, direction;
            force = direction = virus.Position - this.Position;

            direction.Normalize();

            force /= radius * 2;
            force += direction / 2;
            virus.Body.ApplyForce(force * FORCE_FACTOR);
        }
コード例 #6
0
ファイル: GoodCell.cs プロジェクト: em-mo/sommarhack
 public bool VirusCollide(Virus virus)
 {
     _virusResistance--;
     if (_virusResistance == 0)
     {
         PlayWindow.LastGoodCellPosition = Position;
         _infected = true;
         _virusList.Add(virus);
         return true;
     }
     else
         return false;
 }
コード例 #7
0
ファイル: GoodCell.cs プロジェクト: em-mo/sommarhack
        public void ExplodeByVirus()
        {
            float radius = Body.FixtureList.First().Shape.Radius;
            for (int i = 0; i < 1 + _virusList.Count; i++)
            {
                Vector2 position;
                position.X = this.Position.X - radius / 2 + (float)Shared.Random.NextDouble() * radius;
                position.Y = this.Position.Y - radius / 2 + (float)Shared.Random.NextDouble() * radius;

                Virus newVirus = new Virus(PlayWindow, position);
                PlayWindow.RegisterVirus(newVirus);

                ApplyExplodeForce(newVirus);
            }

            foreach (var item in _virusList)
            {
                PlayWindow.RemoveVirus(item);
            }
            PlayWindow.RemoveGoodCell(this);
        }
コード例 #8
0
 private void SpawnCenterJoint(Virus virus)
 {
 }
コード例 #9
0
ファイル: PlayWindow.cs プロジェクト: em-mo/sommarhack
 public void RemoveVirus(Virus virus)
 {
     _removeList.Add(virus);
     VirusList.Remove(virus);
     virus.UpForRemoval = true;
 }
コード例 #10
0
ファイル: PlayWindow.cs プロジェクト: em-mo/sommarhack
 public void RegisterVirus(Virus virus)
 {
     _addList.Add(virus);
 }
コード例 #11
0
ファイル: PlayWindow.cs プロジェクト: em-mo/sommarhack
 public void KillVirus(Virus virus)
 {
     RemoveVirus(virus);
     _statsHandler.RegisterDeath(virus.GetType());
 }
コード例 #12
0
ファイル: PlayerCell.cs プロジェクト: em-mo/sommarhack
 private void SpawnCenterJoint(Virus virus)
 {
 }
コード例 #13
0
ファイル: VirusGrabber.cs プロジェクト: em-mo/sommarhack
 private void DroppedVirus()
 {
     _grabbedVirus.Dropped();
     _grabbedVirus = null;
     _outerBodyWatch.Reset();
     RemoveVirusSprings();
 }
コード例 #14
0
ファイル: VirusGrabber.cs プロジェクト: em-mo/sommarhack
        private bool AABBVirusHandCollision(Fixture f)
        {
            Object o = f.Body.UserData;

            if (o is Virus)
            {
                Virus virus = (Virus)o;

                if (virus.IsNormal())
                    _grabbedVirus = (Virus)o;
            }
            return true;
        }