Example #1
0
 // Update is called once per frame
 void Update()
 {
     if (GetComponent <Renderer>() != null)
     {
         GetComponent <Renderer>().enabled = SharedValues.GetInstance().areWallsShown;
     }
 }
    public void ReplaceSharedVal(SharedValues newValue)
    {
        var index     = GameComponentsLookup.SharedVal;
        var component = CreateComponent <SharedValComponent>(index);

        component.value = newValue;
        ReplaceComponent(index, component);
    }
Example #3
0
    public static SharedValues GetInstance()
    {
        if (sharedValues == null)
        {
            sharedValues = new SharedValues();
        }

        return(sharedValues);
    }
Example #4
0
 // Use this for initialization
 void Start()
 {
     sharedValues = SharedValues.GetInstance();
     switch (sharedValues.level)
     {
     case 0:
         SceneManager.LoadScene("level1");
         break;
     }
 }
    public GameEntity SetSharedVal(SharedValues newValue)
    {
        if (hasSharedVal)
        {
            throw new Entitas.EntitasException("Could not set SharedVal!\n" + this + " already has an entity with SharedValComponent!",
                                               "You should check if the context already has a sharedValEntity before setting it or use context.ReplaceSharedVal().");
        }
        var entity = CreateEntity();

        entity.AddSharedVal(newValue);
        return(entity);
    }
    public void ReplaceSharedVal(SharedValues newValue)
    {
        var entity = sharedValEntity;

        if (entity == null)
        {
            entity = SetSharedVal(newValue);
        }
        else
        {
            entity.ReplaceSharedVal(newValue);
        }
    }
Example #7
0
        public void ConvertLog(IEncounterLog herosLog, SharedValues sharedValues)
        {
            herosLog.Name            = sharedValues.Target;
            herosLog.EncounterDate   = sharedValues.LogStart.ToLocalTime();
            herosLog.EncounterResult = sharedValues.Success ? "Success" : "Fail";

            var time = TimeSpan.FromSeconds(sharedValues.FightDuration);

            herosLog.EncounterTime = new TimeSpan(time.Days, time.Hours, time.Minutes, time.Seconds);

            foreach (var sharedValuesPlayerValue in sharedValues.PlayerValues)
            {
                var characterStats = new CharacterStatistics()
                {
                    Name        = sharedValuesPlayerValue.Character,
                    DisplayName = sharedValuesPlayerValue.Account.Substring(1),
                    BossDps     = Math.Round(sharedValuesPlayerValue.DPSBoss),
                    BossDamage  = sharedValuesPlayerValue.TotalBoss,
                    AllDps      = Math.Round(sharedValuesPlayerValue.DPSAll),
                    AllDamage   = sharedValuesPlayerValue.TotalAll,
                    Down        = sharedValuesPlayerValue.Down.ToString(),
                    Role        = sharedValuesPlayerValue.Profession,
                };

                if (sharedValuesPlayerValue.Dead &&
                    sharedValuesPlayerValue.FightDurationPlayer < sharedValues.FightDuration)
                {
                    var percent    = (sharedValuesPlayerValue.FightDurationPlayer / sharedValues.FightDuration * 100).ToString("0");
                    var timeOfDead = TimeSpan.FromSeconds(sharedValuesPlayerValue.FightDurationPlayer);
                    characterStats.Dead = $"{timeOfDead.Minutes}m {timeOfDead.Seconds}s ({percent}% alive)";
                }

                AddSkills(sharedValuesPlayerValue.Skills, characterStats);

                herosLog.CharacterStatistics.Add(characterStats);
            }

            herosLog.BossDps =
                Math.Round(sharedValues.PlayerValues.Sum(i => i.TotalBoss) / sharedValues.FightDuration);

            herosLog.AllDps =
                Math.Round(sharedValues.PlayerValues.Sum(i => i.TotalAll) / sharedValues.FightDuration);
        }
    // Use this for initialization
    void Awake()
    {
        FixedParameters.generateParameters(wallDistance, numRows, numCols, trapCount, numHoles,
                                           Mathf.CeilToInt(timeout * 60), numGuards, Mathf.CeilToInt(timeDeduction * 60), Mathf.CeilToInt(timeInvincible * 60),
                                           requireInitialInstructions);
        SharedValues sharedValues = SharedValues.GetInstance();

        sharedValues.timeLeft = Mathf.CeilToInt(gameTime * 60);
        sharedValues.level    = level;

        // other stuff
        sharedValues.holesSpawned         = 0;
        sharedValues.wallFrames           = 0;
        sharedValues.areWallsShown        = true;
        sharedValues.trapDisplayState     = 1;
        sharedValues.trapDisplayStateTime = 120;
        sharedValues.isStunned            = false;
        sharedValues.stunnedTime          = 0;
        sharedValues.hasGameStarted       = false;
        sharedValues.isGameOver           = false;
        sharedValues.win = false;
    }
Example #9
0
        public SpanListModel(
            IReadOnlyList <TSpan> spans,
            IEqualityComparer <TSharedKey> sharedKeyComparer = null,
            IComparer <TSharedKey> sharedKeySorter           = null,
            IComparer <TShared> sharedValueSorter            = null)
            : this()
        {
            Optimize = true;
            Count    = spans.Count;
            List <TSharedKey>            sharedKeys = new List <TSharedKey>();
            Dictionary <TSharedKey, int> sharedMap  = new Dictionary <TSharedKey, int>(sharedKeyComparer ?? EqualityComparer <TSharedKey> .Default);

            foreach (var span in spans)
            {
                var sharedKey = GetSharedKey(span);
                if (!sharedMap.ContainsKey(sharedKey))
                {
                    sharedMap.Add(sharedKey, SharedValues.Count);
                    SharedValues.Add(GetShared(span));
                    sharedKeys.Add(sharedKey);
                }
            }

            if (sharedValueSorter != null || sharedKeySorter != null)
            {
                TSharedKey[] sharedKeyArray   = sharedKeys.ToArray();
                TShared[]    sharedValueArray = SharedValues.ToArray();

                if (sharedValueSorter != null)
                {
                    Array.Sort(sharedValueArray, sharedKeyArray, sharedValueSorter);
                }
                else
                {
                    Array.Sort(sharedKeyArray, sharedValueArray, sharedKeySorter);
                }

                // Ensure shared keys is not used after this point
                sharedKeys = null;
                SharedValues.Clear();
                SharedValues.AddRange(sharedValueArray);
                for (int index = 0; index < sharedKeyArray.Length; index++)
                {
                    sharedMap[sharedKeyArray[index]] = index;
                }
            }

            var segmentsLength = NumberUtils.Ceiling(spans.Count, SegmentSpanCount);
            int offset         = 0;

            for (int segmentIndex = 0; segmentIndex < segmentsLength; segmentIndex++, offset += SegmentSpanCount)
            {
                var length = Math.Min(SegmentSpanCount, spans.Count - offset);
                if (length == 0)
                {
                    break;
                }

                var segmentSpans = new ListSegment <TSpan>(spans, offset, length);
                var segment      = CreateSegment(segmentSpans);
                Segments.Add(segment);

                var firstSpanStart = segmentSpans[0].Start;
                var lastSpan       = segmentSpans[length - 1];

                segment.Starts        = IntegerListModel.Create(segmentSpans, s => GetStart(s, SharedValues[sharedMap[GetSharedKey(s)]]));
                segment.Lengths       = IntegerListModel.Create(segmentSpans, s => s.Length);
                segment.FullLength    = (lastSpan.Start + lastSpan.Length) - firstSpanStart;
                segment.SharedIndices = IntegerListModel.Create(segmentSpans, s => sharedMap[GetSharedKey(s)]);
            }
        }