示例#1
0
    void GenerateData(int size)
    {
        m_Data = new List <MyObjectType>(size);
        for (var i = 0; i < size; ++i)
        {
            var    posX = Random.Range(0, 100);
            var    posY = Random.Range(0, 100);
            string name;
            switch (i % 3)
            {
            case 0: name = $"Material {i}";
                break;

            case 1: name = $"Mesh {i}";
                break;

            case 3: name = $"Camera {i}";
                break;

            default: name = $"Object {i}";
                break;
            }
            var newObj = new MyObjectType {
                Id = i, Name = name, Position = new Vector2(posX, posY), Active = i % 2 == 0
            };
            m_Data.Add(newObj);
        }
    }
示例#2
0
        public void EquipItem(GameSettings gs, MyObjectType t)
        {
            switch (t)
            {
            case MyObjectType.mw:
                gs.playerProfile.mw_id.value = gs.ui_profile.mw_id.value;
                break;

            case MyObjectType.sw:
                gs.playerProfile.sw_id.value = gs.ui_profile.sw_id.value;
                break;

            case MyObjectType.mask:
                gs.playerProfile.mask_id.value = gs.ui_profile.mask_id.value;
                break;

            case MyObjectType.skill:
                break;

            case MyObjectType.outfit:
                gs.playerProfile.outfitID.value = gs.ui_profile.outfitID.value;
                break;

            default:
                break;
            }
        }
示例#3
0
 public static int GetPropC(this MyObjectType obj, int dfltVal)
 {
     if (obj != null && obj.PropertyA != null & obj.PropertyA.PropertyB != null)
     {
         return(obj.PropertyA.PropertyB.PropertyC);
     }
     return(dfltVal);
 }
示例#4
0
    public void init(AttackableComponent target, MyObjectType damageType, float speed = 21f, float damage = 1)
    {
        this.target     = target;
        this.damageType = damageType;
        this.speed      = speed;
        this.damage     = damage;

        lineRenderer = GetComponent <LineRenderer>();
    }
    public MyObject CreateInstance(MyObjectType type)
    {
        Func <MyObject> factory;

        if (_store.TryGetValue(type, out factory))
        {
            return(factory.Invoke());
        }
        return(null);
    }
示例#6
0
        void CreateObject(Object obj, MyObjectType t)
        {
            GameObject go = Instantiate(slotTemplate) as GameObject;

            go.SetActive(true);
            go.transform.SetParent(gridParent);
            go.transform.localScale = Vector3.one;
            createdObjs.Add(go);
            UI.UI_Slot slot = go.GetComponent <UI_Slot>();

            string targetText = null;
            bool   isEquiped  = false;

            isEquiped = gameSettings.isEquiped(obj, t);

            switch (t)
            {
            case MyObjectType.mw:
                Weapon mw = (Weapon)obj;
                targetText = mw.id.value;
                break;

            case MyObjectType.sw:
                Weapon sw = (Weapon)obj;
                targetText = sw.id.value;
                break;

            case MyObjectType.mask:
                Mask m = (Mask)obj;
                targetText = m.obj.id.value;
                break;

            case MyObjectType.skill:
                break;

            case MyObjectType.outfit:
                MeshContainer mc = (MeshContainer)obj;
                targetText = mc.id.value;
                break;

            default:
                break;
            }

            slot.type      = type;
            slot.obj       = obj;
            slot.item.text = targetText;
            slot.tick.SetActive(isEquiped);

            bool isBought = gameSettings.playerProfile.IsBought(targetText);

            slot.item.color = (isBought) ? Color.white : Color.gray;
        }
示例#7
0
        public void LoadObjects()
        {
            ClearCreatedObjs();

            type = (MyObjectType)typeVariable.value;

            List <Object> objs = new List <Object>();

            objs = gameSettings.r_manager.GetObjectListFromType(type);
            for (int i = 0; i < objs.Count; i++)
            {
                CreateObject(objs[i], type);
            }

            ui_slot_grid_size.ChangeSize(createdObjs.Count);
        }
 public void Load()
 {
     if (fileType == FileType.JSON)
     {
         //SSL.LoadJSON(ref myObject,FileName, obfuscate);
         myObject = SSL.LoadJSON <MyObjectType>(FileName, obfuscate);
     }
     else
     {
         myObject = SSL.LoadXML <MyObjectType>(FileName, obfuscate);
         //SSL.LoadXML(ref myObject, FileName, obfuscate);
     }
     Apply();
     spr.color = Color.blue;         //physically show it was loaded
     output    = SSL.LoadTXT(FileName);
     UpdateUI();
 }
示例#9
0
        public List <Object> GetObjectListFromType(MyObjectType t)
        {
            List <Object> retVal = new List <Object>();

            switch (t)
            {
            case MyObjectType.mw:
                List <Weapon> mw = GetAllWeaponsOfType(WeaponType.main);
                for (int i = 0; i < mw.Count; i++)
                {
                    retVal.Add((Object)mw[i]);
                }
                break;

            case MyObjectType.sw:
                List <Weapon> sw = GetAllWeaponsOfType(WeaponType.sidearm);
                for (int i = 0; i < sw.Count; i++)
                {
                    retVal.Add((Object)sw[i]);
                }
                break;

            case MyObjectType.mask:
                for (int i = 0; i < masks.Count; i++)
                {
                    retVal.Add((Object)masks[i]);
                }
                break;

            case MyObjectType.skill:
                break;

            case MyObjectType.outfit:
                for (int i = 0; i < meshContainers.Count; i++)
                {
                    retVal.Add((Object)meshContainers[i]);
                }
                break;

            default:
                break;
            }

            return(retVal);
        }
示例#10
0
        public bool isEquiped(Object obj, MyObjectType t)
        {
            bool retVal = false;

            switch (t)
            {
            case MyObjectType.mw:
            case MyObjectType.sw:
                Weapon w        = (Weapon)obj;
                Weapon w_actual = r_manager.GetWeapon((t == MyObjectType.mw)? playerProfile.mw_id.value : playerProfile.sw_id.value);
                if (w == w_actual)
                {
                    retVal = true;
                }

                break;

            case MyObjectType.mask:
                Mask m        = (Mask)obj;
                Mask m_actual = r_manager.GetMask(playerProfile.mask_id.value);
                if (m == m_actual)
                {
                    retVal = true;
                }

                break;

            case MyObjectType.skill:
                break;

            case MyObjectType.outfit:
                MeshContainer mc = (MeshContainer)obj;
                if (string.Equals(mc.id, playerProfile.outfitID.value))
                {
                    retVal = true;
                }

                break;

            default:
                break;
            }

            return(retVal);
        }
示例#11
0
    public void RemoveTargetInRange(AttackableComponent attackableComponent, MyObjectType targetObjectType)
    {
        AttackEffectiviness attackEffectiviness = GetEffectiviness(attackType, targetObjectType);

        switch (attackEffectiviness)
        {
        case AttackEffectiviness.Effective:
            effectiveTargets.Remove(attackableComponent);
            break;

        case AttackEffectiviness.Standard:
            standardTargets.Remove(attackableComponent);
            break;

        case AttackEffectiviness.Ineffective:
            ineffectiveTargets.Remove(attackableComponent);
            break;
        }
    }
示例#12
0
    static public float GetDamageModifier(MyObjectType attackType, MyObjectType defenceType)
    {
        AttackEffectiviness attackEffectiviness = GetEffectiviness(attackType, defenceType);

        switch (attackEffectiviness)
        {
        case AttackEffectiviness.Effective:
            return(2f);

        case AttackEffectiviness.Standard:
            return(1f);

        case AttackEffectiviness.Ineffective:
            return(0.5f);

        default:
            return(1f);
        }
    }
示例#13
0
        /// <summary>
        /// If you can’t use a registration lambda, you can add an activating event handler:
        /// </summary>
        public static void ActivatingEventHandler()
        {
            Console.WriteLine("\nPropertyandMethodInjection.ActivatingEventHandler:\n");
            ContainerBuilder builder = new ContainerBuilder();

            builder.RegisterType <TheDependency>();
            builder
            .RegisterType <MyObjectType>()
            .OnActivating(e =>
            {
                TheDependency dep = e.Context.Resolve <TheDependency>();
                e.Instance.SetTheDependency(dep);
            });
            IContainer container = builder.Build();

            using (ILifetimeScope lifetimeScope = container.BeginLifetimeScope())
            {
                MyObjectType instance = lifetimeScope.Resolve <MyObjectType>();
                Console.WriteLine("instance.GetType(): " + instance.GetType());
            }
        }
示例#14
0
        /// <summary>
        /// The simplest way to call a method to set a value on a component
        /// is to use a lambda expression component and handle the method
        /// call right in the activator:
        /// </summary>
        public static void MethodInjection()
        {
            Console.WriteLine("\nPropertyandMethodInjection.MethodInjection:\n");
            ContainerBuilder builder = new ContainerBuilder();

            builder.RegisterType <TheDependency>();
            builder.Register(c =>
            {
                MyObjectType myObjectType = new MyObjectType();
                TheDependency dep         = c.Resolve <TheDependency>();
                myObjectType.SetTheDependency(dep);
                return(myObjectType);
            });
            IContainer container = builder.Build();

            using (ILifetimeScope lifetimeScope = container.BeginLifetimeScope())
            {
                MyObjectType instance = lifetimeScope.Resolve <MyObjectType>();
                Console.WriteLine("instance.GetType(): " + instance.GetType());
            }
        }
示例#15
0
 static public AttackEffectiviness GetEffectiviness(MyObjectType attackType, MyObjectType defenceType)
 {
     if (attackType == MyObjectType.Light && defenceType == MyObjectType.Heavy)
     {
         return(AttackEffectiviness.Ineffective);
     }
     else if (attackType == MyObjectType.Heavy && defenceType == MyObjectType.Light)
     {
         return(AttackEffectiviness.Ineffective);
     }
     else if (attackType == MyObjectType.Light && defenceType == MyObjectType.Light)
     {
         return(AttackEffectiviness.Effective);
     }
     else if (attackType == MyObjectType.Heavy && defenceType == MyObjectType.Heavy)
     {
         return(AttackEffectiviness.Effective);
     }
     else
     {
         return(AttackEffectiviness.Standard);
     }
 }
示例#16
0
    public void AddTargetInRange(AttackableComponent attackableComponent, MyObjectType targetObjectType)
    {
        if (effectiveTargets.Contains(attackableComponent) || standardTargets.Contains(attackableComponent) || ineffectiveTargets.Contains(attackableComponent))
        {
            return;
        }

        AttackEffectiviness attackEffectiviness = GetEffectiviness(attackType, targetObjectType);

        switch (attackEffectiviness)
        {
        case AttackEffectiviness.Effective:
            effectiveTargets.Add(attackableComponent);
            break;

        case AttackEffectiviness.Standard:
            standardTargets.Add(attackableComponent);
            break;

        case AttackEffectiviness.Ineffective:
            ineffectiveTargets.Add(attackableComponent);
            break;
        }
    }
示例#17
0
        public void EquipOrBuy(UI_Slot slot)
        {
            curSlot = slot;
            GameSettings s = Resources.Load("Game Settings") as GameSettings;

            string targetId   = null;
            int    targetCost = 0;

            switch (slot.type)
            {
            case MyObjectType.mw:
            case MyObjectType.sw:
                Weapon w = (Weapon)slot.obj;
                targetId   = w.id.value;
                targetCost = w.price;
                break;

            case MyObjectType.mask:
                Mask m = (Mask)slot.obj;
                targetId   = m.obj.id.value;
                targetCost = m.cost;
                break;

            case MyObjectType.skill:
                break;

            case MyObjectType.outfit:
                MeshContainer mc = (MeshContainer)slot.obj;
                targetId   = mc.id.value;
                targetCost = mc.cost;
                break;

            default:
                break;
            }

            storeId   = targetId;
            storeType = slot.type;

            VisualizeItem(s);

            bool isBought = s.playerProfile.IsBought(targetId);

            if (isBought)
            {
                isTrue.Invoke();
                EquipItem(s, slot.type);
            }
            else
            {
                if (curCost > s.playerProfile.money.value)
                {
                    //TODO: change color of buy button
                }

                curCost = targetCost;
                curCostVariable.value = targetCost.ToString();

                isFalse.Invoke();
            }

            onProfileUpdate.Raise();
        }
示例#18
0
 public void ChangeType(int i)
 {
     type = (MyObjectType)i;
 }
示例#19
0
 protected MyObject(int age)
 {
     Type = MyObjectType.Age;
     Age  = age;
 }
示例#20
0
    static float HandleDistFilter(MyObjectType myObj, Vector2 param)
    {
        var vec = myObj.Position - param;

        return(vec.magnitude);
    }
 public void Register <T>(MyObjectType type) where T : MyObject, new()
 {
     this.Register(type, () => new T());
 }
示例#22
0
 protected MyObject(object student)
 {
     Type    = MyObjectType.Student;
     Student = student;
 }
 public void Register(MyObjectType type, Func <MyObject> factory)
 {
     _store.Add(type, factory);
 }
示例#24
0
 protected MyObject(string name)
 {
     Type = MyObjectType.Name;
     Name = name;
 }