Inheritance: MonoBehaviour
Esempio n. 1
0
        public override void ReadDataXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (ele.TryPathTo("EditorID", false, out subEle))
            {
                if (EditorID == null)
                {
                    EditorID = new SimpleSubrecord <String>();
                }

                EditorID.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ObjectBounds", false, out subEle))
            {
                if (ObjectBounds == null)
                {
                    ObjectBounds = new ObjectBounds();
                }

                ObjectBounds.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Name", false, out subEle))
            {
                if (Name == null)
                {
                    Name = new SimpleSubrecord <String>();
                }

                Name.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Model", false, out subEle))
            {
                if (Model == null)
                {
                    Model = new Model();
                }

                Model.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Icon/Large", false, out subEle))
            {
                if (LargeIcon == null)
                {
                    LargeIcon = new SimpleSubrecord <String>();
                }

                LargeIcon.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Icon/Small", false, out subEle))
            {
                if (SmallIcon == null)
                {
                    SmallIcon = new SimpleSubrecord <String>();
                }

                SmallIcon.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Script", false, out subEle))
            {
                if (Script == null)
                {
                    Script = new RecordReference();
                }

                Script.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Destructable", false, out subEle))
            {
                if (Destructable == null)
                {
                    Destructable = new Destructable();
                }

                Destructable.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("PickUpSound", false, out subEle))
            {
                if (PickUpSound == null)
                {
                    PickUpSound = new RecordReference();
                }

                PickUpSound.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("DropSound", false, out subEle))
            {
                if (DropSound == null)
                {
                    DropSound = new RecordReference();
                }

                DropSound.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Data", false, out subEle))
            {
                if (Data == null)
                {
                    Data = new AmmoData();
                }

                Data.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ExtraData", false, out subEle))
            {
                if (ExtraData == null)
                {
                    ExtraData = new AmmoExtraData();
                }

                ExtraData.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("ShortName", false, out subEle))
            {
                if (ShortName == null)
                {
                    ShortName = new SimpleSubrecord <String>();
                }

                ShortName.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("Abbreviation", false, out subEle))
            {
                if (Abbreviation == null)
                {
                    Abbreviation = new SimpleSubrecord <String>();
                }

                Abbreviation.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("AmmoEffects", false, out subEle))
            {
                if (AmmoEffects == null)
                {
                    AmmoEffects = new List <RecordReference>();
                }

                foreach (XElement e in subEle.Elements())
                {
                    RecordReference tempRCIL = new RecordReference();
                    tempRCIL.ReadXML(e, master);
                    AmmoEffects.Add(tempRCIL);
                }
            }
        }
Esempio n. 2
0
 public void UpdateAmmoType(AmmoData ammoType)
 {
     AmmoRenderer.sprite = ammoType.Icon;
 }
Esempio n. 3
0
 public void SwitchAmmo(AmmoData NewAmmo, bool AutoFire)
 {
     _shootComp.SwitchAmmo(NewAmmo, AutoFire);
 }
Esempio n. 4
0
 public virtual void Setup(Vector3 targetPos, float targetSpread, AmmoData ammoData, int range, GameObject source, string targetTag)
 {
 }
Esempio n. 5
0
    void TeamAttack(Team team, Team targetTeam, float deltaTime)
    {
        Piece attackPiece;
        Piece pieceToHit;
        int   i;

        for (i = 0; i < team.Pieces.Count; i++)
        {
            attackPiece = team.Pieces[i];

            if (attackPiece.Status == PieceStatus.NORMAL && attackPiece.Ammo.AmmoCount() > 0 && !attackPiece.HasFlag)
            {
                if (attackPiece.CoolDownTimer <= 0.0f)
                {
                    AmmoData ammoData = AmmoManager.Instance.GetAmmoData((int)attackPiece.Ammo.GetNextAmmoType());
                    pieceToHit = targetTeam.FindClosestPiece(attackPiece.Position, attackPiece.RangeCalc, ammoData.RangeBonus);
                    if (pieceToHit != null)
                    {
                        AmmoType ammoType = attackPiece.Throw();
                        ThrowBalloon(attackPiece.GetTeam.GetColor, attackPiece.transform.localPosition, pieceToHit.transform.localPosition, ammoType);
                        if (pieceToHit.GetHit(ammoData.Damage))
                        {
                            // if flag was dropped (true for GetHit), set status of flag
                            if (team.GetColor == TeamColor.RED)
                            {
                                _redFlag.Status = FlagStatus.DROPPED;
                            }
                            else
                            {
                                _blueFlag.Status = FlagStatus.DROPPED;
                            }
                        }

                        // increment takedowns
                        if (pieceToHit.Status == PieceStatus.OUT)
                        {
                            attackPiece.Takedowns++;
                        }

                        //DataRecorder.AddHitToTurnData(attackPiece.ID, pieceToHit.ID);
                        attackPiece.CoolDownTimer = attackPiece.CoolDownTime;

                        // check the ranged damage
                        if (ammoData.SplashDamage != 0)
                        {
                            for (int j = 0; j < targetTeam.Pieces.Count; j++)
                            {
                                Piece pieceToCheck = targetTeam.Pieces[j];
                                if (pieceToCheck.Status == PieceStatus.NORMAL && pieceToCheck != pieceToHit)
                                {
                                    float distance = (pieceToHit.Position - pieceToCheck.Position).magnitude;
                                    if (distance <= ammoData.SplashRadius)
                                    {
                                        bool hasFlag = pieceToCheck.GetHit(ammoData.SplashDamage);
                                        if (pieceToCheck.Status == PieceStatus.OUT)
                                        {
                                            if (hasFlag)
                                            {
                                                if (team.GetColor == TeamColor.RED)
                                                {
                                                    _redFlag.Status = FlagStatus.DROPPED;
                                                }
                                                else
                                                {
                                                    _blueFlag.Status = FlagStatus.DROPPED;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    attackPiece.CoolDownTimer -= deltaTime;
                    if (attackPiece.CoolDownTimer <= 0.0f)
                    {
                        attackPiece.CoolDownTimer = 0.0f;
                    }
                    //Debug.Log("now timer = " + attackPlayer.CoolDownTimer);
                }
            }
        }
    }