Пример #1
0
        public static string GetStageObjectTypeText(StageObjectType type)
        {
            var result = string.Empty;

            if (type == StageObjectType.CustomField)
            {
                result = "نقش در PWA";
            }
            else if (type == StageObjectType.Group)
            {
                result = "گروه در PWA";
            }
            else if (type == StageObjectType.Owner)
            {
                result = "مالک";
            }
            else if (type == StageObjectType.Resource)
            {
                result = "منبع";
            }
            else if (type == StageObjectType.SelectiveApprover)
            {
                result = "انتخاب دستی";
            }
            return(result);
        }
Пример #2
0
 public ActionSingle2(E_Target targetRange, StageObjectType? targetType, string statusKey, string valueExpr, params string[] options)
 {
     this.targetRange = targetRange;
     this.targetType = targetType;
     this.statusKey = statusKey;
     this.valueExpr = valueExpr;
     this.options = options;
 }
Пример #3
0
        public void UpdateMaxScore(StageObjectType type, ref GameObject obj, float difficultyFactor)
        {
            switch (type)
            {
            case StageObjectType.Target:
                maxScore += obj.GetComponent <Target>().Score;
                break;

            case StageObjectType.Obstacle:
                maxScore += obj.GetComponent <Obstacle>().Score;
                break;
            }
        }
Пример #4
0
        static void ParseTarget(string str, out E_Target targetRange, out StageObjectType? targetType)
        {
            var tokens = str.Split('=');
            Assert.IsTrue(1 <= tokens.Length && tokens.Length <= 2);

            var result = EnumTool.Parse<E_Target>(tokens[0]);
            Assert.IsTrue(result != null, "invalid E_Target: " + tokens[0]);
            targetRange = result.Value;

            if (tokens.Length == 2)
            {
                targetType = EnumTool.Parse<StageObjectType>(tokens[1]);
            }
            else
            {
                targetType = null;
            }
        }
Пример #5
0
 public StageObjectView GetStageObject(StageObjectType type, ColorType color)
 {
     return(_stageObjectTable.stageObjectDataList
            .Find(x => x.type == type && x.color == color)
            .stageObject);
 }
Пример #6
0
        /// <summary>
        /// 특정 스테이지 개체 타입에 대한 각 스테이지 객체의 확률을 얻는다.
        /// </summary>
        /// <param name="soType">스테이지 개체 타입</param>
        /// <returns>Key는 FieldObjectCode, Value는 확률값.</returns>
        public Dictionary<uint, float> GetStageObjectChances(StageObjectType soType)
        {
            Dictionary<uint, float> ret = new Dictionary<uint,float>();
            Dictionary<uint, StageObject> sos = ProxyServer.Instance.StageManager.StageObjects;

            foreach (var pr in m_stageObjectChances)
            {
                StageObject o = null;
                if (sos.TryGetValue(pr.Key, out o))
                {
                    if (o.SoType == soType)
                        ret.Add(pr.Key, pr.Value);
                }
            }

            return ret;
        }
Пример #7
0
    public IEnumerable<ActionHandler2> FindTarget(E_Target targetRange, StageObjectType? targetType)
    {
        IEnumerable<ActionHandler2> ret = null;

        // check range
        if (targetRange == E_Target.Self)
        {
            ret = ArrayTool.Create(this);
        }
        else if (targetRange == E_Target.Contact)
        {
            ret = Colliders.Select(x => x as ActionHandler2);
        }
        else if (targetRange == E_Target.Forward)
        {
            Assert.Fail("not implemented");
        }

        // check type
        if (targetRange != null)
        {
            ret = ret.Where(x => (x is StageObject) && (x as StageObject).stageObjectEntity.stageObjectType == targetType);
        }
        else
        {
            ret = ret.Where(x => (x is HeroCharacter) || (x is StageObject));
        }

        Assert.IsTrue(ret.All(x => x != null));
        return ret;
    }