Exemple #1
0
    public void SpawnCrate()
    {
        CrateType crateType = (CrateType)Random.Range(1, DatabaseManager.Instance.Db.ListCrate.Count + 1);
        float     posXrand  = spawnArea.transform.position.x + Random.Range(-spawnArea.size.x / 2.0f, spawnArea.size.x / 2.0f);

        DatabaseManager.Instance.SpawnCrate(crateType, new Vector2(posXrand, spawnArea.transform.position.y));
    }
        public DerelictCargo() : base()
        {
            Name   = "derelict cargo (common)";
            ItemID = Utility.RandomList(4014, 2473, 3703, 3715, 3711, 3645, 3644, 3647, 3648, 2475, 3710, 7808, 7809);

            double typeChance = Utility.RandomDouble();

            Hue = 1039;

            if (typeChance >= .80 && typeChance < .98)
            {
                m_CrateType = CrateType.Silver;
                Hue         = 2500;
                Name        = "derelict cargo (valuable)";
            }

            if (typeChance >= .98)
            {
                m_CrateType = CrateType.Gold;
                Hue         = 2213;
                Name        = "derelict cargo (rare)";
            }

            Timer.DelayCall(TimeSpan.Zero, new TimerCallback(AddComponents));
        }
Exemple #3
0
    private void Start()
    {
        switch (type)
        {
        case CType.Standard:
            crate = new StandardCrate();
            break;

        case CType.Bounce:
            crate = new BounceCrate();
            break;

        case CType.Arrow:
            crate = new ArrowCrate();
            break;

        case CType.MetalArrow:
            crate = new MetalArrowCrate();
            break;

        case CType.Life:
            crate = new LifeCrate();
            break;
        }
    }
Exemple #4
0
    void Start()
    {
        var random = new System.Random();

        _crateType = (CrateType)random.Next(Enum.GetValues(typeof(CrateType)).Cast <int>().Max() - 2);
        _quantity  = (int)_crateType < 5 ? random.Next(10, 30) : 0;
    }
Exemple #5
0
    public void SpawnCrate(CrateType typeCrate, Vector2 startPos)
    {
        GameObject     crate          = Instantiate(db.ListCrate[(int)typeCrate - 1].prefab);
        CrateComponent crateComponent = crate.GetComponent <CrateComponent>();

        crateComponent.CrateType = typeCrate;
        crate.transform.position = startPos;
    }
 /// <summary>
 /// Creates a new crate instance
 /// </summary>
 /// <param name="game">The game this crate belongs to</param>
 /// <param name="type">The type of crate to use</param>
 /// <param name="world">The position and orientation of the crate in the world</param>
 public Crate(Game game, CrateType type, Matrix world)
 {
     this.game    = game;
     this.texture = game.Content.Load <Texture2D>($"crate{(int)type}_diffuse");
     InitializeVertices();
     InitializeIndices();
     InitializeEffect();
     effect.World = world;
 }
Exemple #7
0
    // Use this for initialization
    void Start()
    {
        mesh = GetComponent <MeshRenderer>();

        if (randomType)
        {
            int numOfTypes = System.Enum.GetNames(typeof(CrateType)).Length;
            type = (CrateType)Random.Range(0, numOfTypes - 1);
        }

        mesh.material.mainTexture = GetCrateTexture(type);
    }
Exemple #8
0
    public Texture2D GetCrateTexture(CrateType type)
    {
        switch (type)
        {
        case CrateType.Type_1:
            return(crateTextures[0]);

        case CrateType.Type_2:
            return(crateTextures[1]);

        case CrateType.Type_3:
            return(crateTextures[2]);
        }

        return(null);
    }
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            //Version 0
            m_CrateType = (CrateType)reader.ReadInt();

            m_HitPoints = reader.ReadInt();

            int itemsCount = reader.ReadInt();

            for (int i = 0; i < itemsCount; ++i)
            {
                m_Items.Add(reader.ReadItem());
            }
        }
Exemple #10
0
        private static void InstantiateCrate(XmlNode objectNode, Dictionary <int, XmlNode> dictProperties, ref Dictionary <BorderCrate, int> borderCrates,
                                             ref Dictionary <int, TriggerIronCrate> triggerCrates, ref Dictionary <int, TriggerNitroCrate> triggerNitros, ref List <ICheckpointLoadable> objectLoadable, ref List <CheckpointCrate> checkpoints)
        {
            string xString = objectNode.Attributes["x"].Value;
            float  xPos    = float.Parse(xString, System.Globalization.CultureInfo.InvariantCulture);

            string yString = objectNode.Attributes["y"].Value;
            float  yPos    = float.Parse(yString, System.Globalization.CultureInfo.InvariantCulture);

            Vector2 pos           = new Vector2(xPos + (int.Parse(objectNode.Attributes["width"].Value) / 2), yPos - (int.Parse(objectNode.Attributes["height"].Value) / 2));
            int     globalIdCrate = int.Parse(objectNode.Attributes["gid"].Value) - 1;

            XmlNode     properties    = dictProperties[globalIdCrate];
            XmlNodeList childList     = properties.ChildNodes;
            XmlNode     propertyCrate = SearchNodeWithAttribute(ref childList, "name", "crateType");
            CrateType   type          = (CrateType)int.Parse(propertyCrate.Attributes["value"].Value);

            Crate c = null;

            switch (type)
            {
            case CrateType.Apple:
                c = new AppleCrate(pos);
                break;

            case CrateType.Random:
                c = new RandomCrate(pos);
                break;

            case CrateType.Life:
                c = new LifeCrate(pos);
                break;

            case CrateType.Aku:
                c = new AkuAkuCrate(pos);
                break;

            case CrateType.Bounce_Apple:
                c = new AppleBounceCrate(pos);
                break;

            case CrateType.Bounce_Wooden:
                c = new WoodenBounceCrate(pos);
                break;

            case CrateType.Bounce_Iron:
                c = new IronBounceCrate(pos);
                break;

            case CrateType.Iron:
                c = new IronCrate(pos);
                break;

            case CrateType.Trigger_Iron:

                c = new TriggerIronCrate(pos);
                XmlNode idCrate = objectNode.FirstChild.LastChild;
                int     id      = int.Parse(idCrate.Attributes["value"].Value);
                triggerCrates.Add(id, (TriggerIronCrate)c);
                break;

            case CrateType.Tnt:
                c = new TntCrate(pos);
                break;

            case CrateType.Nitro:
                c = new NitroCrate(pos);

                if (objectNode.HasChildNodes)
                {
                    XmlNodeList list = objectNode.FirstChild.ChildNodes;
                    XmlNode     node = SearchNodeWithAttribute(ref list, "name", "vTriggerNitroId");
                    if (node != null)
                    {
                        int idN = int.Parse(node.Attributes["value"].Value);
                        if (idN > 0)
                        {
                            triggerNitros[idN].AddNitroCrate((NitroCrate)c);
                        }
                    }
                }

                break;

            case CrateType.Border_Crate:

                XmlNode   borderTypeNode = objectNode.FirstChild.FirstChild;
                CrateType borderType;

                if (borderTypeNode.Attributes["name"].Value.Equals("borderCrate"))
                {
                    borderType = (CrateType)int.Parse(borderTypeNode.Attributes["value"].Value);
                }
                else
                {
                    borderType = CrateType.Iron;
                }

                BorderCrate b = new BorderCrate(pos, borderType);
                borderCrates.Add(b, int.Parse(objectNode.FirstChild.LastChild.Attributes["value"].Value));
                objectLoadable.Add(b);
                return;

            case CrateType.Trigger_Iron_Nitro:
                c = new TriggerNitroCrate(pos);
                XmlNode idNitroCrate = objectNode.FirstChild.LastChild;
                int     idTrigger    = int.Parse(idNitroCrate.Attributes["value"].Value);
                triggerNitros.Add(idTrigger, (TriggerNitroCrate)c);
                break;

            case CrateType.Checkpoint_Crate:
                checkpoints.Add(new CheckpointCrate(pos));
                return;
            }

            if (c != null)
            {
                objectLoadable.Add(c);
            }
            //if (c != null && objectNode.HasChildNodes)
            //{
            //    if (objectNode.FirstChild.FirstChild.Attributes["name"].Value == "useGravity")
            //        c.UseGroundableGravity = bool.Parse(objectNode.FirstChild.FirstChild.Attributes["value"].Value);
            //}
        }
Exemple #11
0
        /// <summary>
        /// Builds the crate
        /// </summary>
        public void Build()
        {
            int random = GameWorld.Instance.Rnd.Next(6);

            switch (random)
            {
            case 1:
                type = CrateType.TowerCrate;
                break;

            case 2:
                type = CrateType.WeaponCrate;

                break;

            case 3:
                type = CrateType.WeaponCrate;

                break;

            case 4:
                type = CrateType.MoneyCrate;

                break;

            case 5:
                type = CrateType.MoneyCrate;
                break;

            default:
                type = CrateType.HealthCrate;

                break;
            }
            go = new GameObject();

            go.Transform.Position = new Vector2(GameWorld.Instance.Rnd.Next(Constant.width),
                                                GameWorld.Instance.Rnd.Next(Constant.hight));

            switch (type)
            {
            case CrateType.WeaponCrate:
                go.AddComponent(new SpriteRenderer(go, Constant.GunCrateSpriteSheet, 0.2f));
                go.AddComponent(new WeaponCrate(go));
                break;

            case CrateType.TowerCrate:
                go.AddComponent(new SpriteRenderer(go, Constant.TowerCrateSpriteSheet, 0.2f));
                go.AddComponent(new TowerCrate(go));
                break;

            case CrateType.MoneyCrate:
                go.AddComponent(new SpriteRenderer(go, Constant.MoneyCrateSpriteSheet, 0.2f));
                go.AddComponent(new MoneyCrate(go));

                break;

            case CrateType.HealthCrate:
                go.AddComponent(new SpriteRenderer(go, Constant.HealthCrateSpriteSheet, 0.2f));
                go.AddComponent(new HealthCrate(go));
                break;

            default:
                break;
            }


            go.AddComponent(new Collider(go, Alignment.Neutral));
            go.AddComponent(new Animator(go));
        }
        public BorderCrate(Vector2 position, CrateType type) : base(position, "borderCrate", DrawManager.Layer.Playground)
        {
            Crate c = null;

            switch (type)
            {
            case CrateType.Apple:
                c = new AppleCrate(position);
                break;

            case CrateType.Random:
                c = new RandomCrate(position);
                break;

            case CrateType.Life:
                c = new LifeCrate(position);
                break;

            case CrateType.Aku:
                c = new AkuAkuCrate(position);
                break;

            case CrateType.Bounce_Apple:
                c = new AppleBounceCrate(position);
                break;

            case CrateType.Bounce_Wooden:
                c = new WoodenBounceCrate(position);
                break;

            case CrateType.Bounce_Iron:
                c = new IronBounceCrate(position);
                break;

            case CrateType.Iron:
                c = new IronCrate(position);
                break;

            case CrateType.Trigger_Iron:
                c = new TriggerIronCrate(position);
                break;

            case CrateType.Tnt:
                c = new TntCrate(position);
                break;

            case CrateType.Nitro:
                c = new NitroCrate(position);
                break;

            default:
                c = new IronCrate(position);
                break;
            }

            Crate = c;

            clipTriggered   = AudioManager.GetAudioClip("crateTriggered");
            crateTriggered  = false;
            timeToTriggered = TIME_TO_TRIGGER_CRATE;

            PhysicsManager.RemoveItem(RigidBody);
            RigidBody = null;
        }
Exemple #13
0
 public Crate(GameObject _prefab, CrateType _type)
 {
     prefab    = _prefab;
     crateType = _type;
 }