Ejemplo n.º 1
0
        public static XMarker GetMarker(XTrack track, MarkData data)
        {
            XMarker marker = null;

            switch (data.type)
            {
            case MarkType.Active:
                marker = SharedPool <XActiveMark> .Get();

                break;

            case MarkType.Jump:
                marker = SharedPool <XJumpMarker> .Get();

                break;

            case MarkType.Slow:
                marker = SharedPool <XSlowMarker> .Get();

                break;
            }
            if (marker != null)
            {
                marker.Initial(track, data);
            }
            return(marker);
        }
Ejemplo n.º 2
0
        void IDependencyAnalysisMarkStrategy <DependencyContextType> .VisitLogEdges(IEnumerable <DependencyNodeCore <DependencyContextType> > nodeList, IDependencyAnalyzerLogEdgeVisitor <DependencyContextType> logEdgeVisitor)
        {
            foreach (DependencyNodeCore <DependencyContextType> node in nodeList)
            {
                if (node.Marked)
                {
                    MarkData markData = (MarkData)node.GetMark();

                    if (markData.Reason2 != null)
                    {
                        Debug.Assert(markData.Reason1 != null);
                        logEdgeVisitor.VisitEdge(markData.Reason1, markData.Reason2, node, markData.Reason);
                    }
                    else if (markData.Reason1 != null)
                    {
                        logEdgeVisitor.VisitEdge(markData.Reason1, node, markData.Reason);
                    }
                    else
                    {
                        Debug.Assert(markData.Reason != null);
                        logEdgeVisitor.VisitEdge(markData.Reason, node);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public override void PostSpawnSetup(bool respawningAfterLoad)
        {
            base.PostSpawnSetup(respawningAfterLoad);

            /*
             * if (blood <= (BloodStatusMode)1)
             * {
             * //    Log.Message("Markable missing hediff, restting to unblooded");
             *  pawn.health.AddHediff(Unbloodeddef, partRecord);
             *  blood = BloodStatusMode.Unblooded;
             * }
             */
            if (!respawningAfterLoad)
            {
                if (markDataKill == null)
                {
                    if (BloodStatus == BloodStatusMode.Marked)
                    {
                        Rand.PushState();
                        int rand = Rand.RangeInclusive(0, HunterMarkingSystem.RaceDefaultMarkDict.Count - 1);
                        Rand.PopState();
                        markDataKill = HunterMarkingSystem.RaceDefaultMarkDict.ElementAt(rand).Value;
                        if (markDataKill == null)
                        {
                            Log.Warning(string.Format("markData null for {0} pawn {1}", BloodStatus.ToString(), pawn.Name.ToStringShort));
                        }
                    }
                }
                else
                {
                    //    Log.Message(string.Format("markData exists for {0} pawn {1}, {2}", BloodStatus.ToString(), pawn.Name.ToStringShort, markDataKill.Label));
                }
            }
        }
Ejemplo n.º 4
0
        void IDependencyAnalysisMarkStrategy <DependencyContextType> .VisitLogNodes(IEnumerable <DependencyNodeCore <DependencyContextType> > nodeList, IDependencyAnalyzerLogNodeVisitor <DependencyContextType> logNodeVisitor)
        {
            var combinedNodesReported = new HashSet <Tuple <DependencyNodeCore <DependencyContextType>, DependencyNodeCore <DependencyContextType> > >();

            if (_reasonStringOnlyNodes != null)
            {
                foreach (string reasonOnly in _reasonStringOnlyNodes)
                {
                    logNodeVisitor.VisitRootNode(reasonOnly);
                }
            }

            foreach (DependencyNodeCore <DependencyContextType> node in nodeList)
            {
                if (node.Marked)
                {
                    MarkData markData = (MarkData)node.GetMark();

                    if (markData.Reason2 != null)
                    {
                        var combinedNode = new Tuple <DependencyNodeCore <DependencyContextType>, DependencyNodeCore <DependencyContextType> >(markData.Reason1, markData.Reason2);

                        if (!combinedNodesReported.Contains(combinedNode))
                        {
                            logNodeVisitor.VisitCombinedNode(combinedNode);
                        }
                    }
                }
            }
        }
        public override void PostSpawnSetup(bool respawningAfterLoad)
        {
            base.PostSpawnSetup(respawningAfterLoad);

            /*
             * if (blood <= (BloodStatusMode)1)
             * {
             * //    Log.Message("Markable missing hediff, restting to unblooded");
             *  pawn.health.AddHediff(Unbloodeddef, partRecord);
             *  blood = BloodStatusMode.Unblooded;
             * }
             */
            if (markDataKill == null)
            {
                if (BloodStatus == BloodStatusMode.Marked)
                {
                    markDataKill = HunterMarkingSystem.RaceDefaultMarkDict.Values.Where(x => pawn.health.hediffSet.HasHediff(x.MarkDef)).RandomElement();
                    if (markDataKill == null)
                    {
                        Log.Warning(string.Format("markData null for {0} pawn {1}", BloodStatus.ToString(), pawn.Name.ToStringShort));
                    }
                }
            }
            else
            {
                //    Log.Message(string.Format("markData exists for {0} pawn {1}, {2}", BloodStatus.ToString(), pawn.Name.ToStringShort, markDataKill.Label));
            }
        }
Ejemplo n.º 6
0
 public void UnlockMark()
 {
     if (_markData.IsLocked)
     {
         _markData = new MarkData(_markData.Area, _markData.GroupIndex, _markData.CellIndex, false);
     }
 }
Ejemplo n.º 7
0
        public static bool AddMarker(this XTrack track, XMarker marker, MarkData data)
        {
            if (track.marks != null)
            {
                var list = track.marks.ToList();

                if (!list.Contains(marker))
                {
                    list.Add(marker);
                    list.Sort((x, y) => x.time.CompareTo(y.time));
                    track.marks = list.ToArray();

                    var datas = track.data.marks.ToList();
                    datas.Add(data);
                    track.data.marks = datas.ToArray();
                    return(true);
                }
            }
            else
            {
                track.marks      = new XMarker[1];
                track.marks[0]   = marker;
                track.data.marks = new[] { data };
            }
            return(false);
        }
Ejemplo n.º 8
0
        public virtual MarkData Convert()
        {
            var ret = new MarkData(x, y, angle, time, type, ID);

            foreach (var parameter in parameters)
            {
                ret.AddParameter(parameter.Key, parameter.Value);
            }
            return(ret);
        }
Ejemplo n.º 9
0
 public static void Initialize()
 {
     ActivitiesData.InitializeTempData();
     //UserData.InitializeTempData();
     MarkData.InitializeTempData();
     ActivitiesUsersData.InitializeTempData();
     TagsData.InitializeTempData();
     DobrfData.InitializeTempData();
     FundData.InitializeTempData();
     CashFlowData.InitializeTempData();
 }
Ejemplo n.º 10
0
        public void UnsetMark(HitTestArea area)
        {
            if (_markData.IsLocked)
            {
                return;
            }
            var a = _markData.Area & (~area);

            _markData = new MarkData(a, _markData.GroupIndex, _markData.CellIndex, false);
            RedrawGroup(_markData.GroupIndex);
        }
Ejemplo n.º 11
0
        public void SetMark(int gi, int ci, HitTestArea area, bool locked)
        {
            if (_markData.IsLocked)
            {
                return;
            }
            var oldMark = _markData;

            _markData = new MarkData(area, gi, ci, locked);
            RedrawGroup(oldMark.Area != HitTestArea.None ? oldMark.GroupIndex : gi);
        }
Ejemplo n.º 12
0
        private Mark CreateMark(IPPDData ipdata)
        {
            ExMarkData emd = ipdata as ExMarkData;

            if (emd != null)
            {
                ExMark ret = new ExMark(device, resourceManager, imagepathes, emd, (ButtonType)keychange[(int)emd.ButtonType],
                                        evals, adjustgaptime, circlepoints, em.GetCorrectDisplaystate(ipdata.Time), em.GetACMode(ipdata.Time));
                marks.Add(ret);
                return(ret);
            }
            else
            {
                MarkData md  = ipdata as MarkData;
                Mark     ret = new Mark(device, resourceManager, imagepathes, md, (ButtonType)keychange[(int)md.ButtonType], evals, adjustgaptime, em.GetCorrectDisplaystate(ipdata.Time), em.GetACMode(ipdata.Time));
                marks.Add(ret);
                return(ret);
            }
        }
Ejemplo n.º 13
0
        public override void DoSettingsWindowContents(Rect inRect)
        {
            this.settings.MinWorthyKill = Widgets.HorizontalSlider(inRect.TopHalf().BottomHalf().TopHalf().BottomHalf().ContractedBy(4),
                                                                   this.settings.MinWorthyKill, 0f, 3f, true,
                                                                   "HMS_MinScoreFactor".Translate(this.settings.MinWorthyKill * 100)
                                                                   , "0%", "300%");

            Widgets.TextFieldNumeric <float>(inRect.TopHalf().TopHalf().TopHalf().BottomHalf().LeftHalf().LeftHalf().ContractedBy(4), ref settings.MinWorthyKill, ref settings.MinWorthyKillBuffer, 0.001f, 10f);

            float           num            = 800f;
            float           x              = inRect.x;
            float           num2           = inRect.y;
            float           num3           = inRect.y;
            List <ThingDef> WorthyKillDefs = HunterMarkingSystem.RaceDefaultMarkDict.Keys.ToList();
            List <string>   listed         = new List <string>();

            Widgets.Label(inRect.TopHalf().BottomHalf().BottomHalf().BottomHalf().ContractedBy(4), "HMS_KillMarksScores".Translate(WorthyKillDefs.Count));
            Widgets.BeginScrollView(inRect.BottomHalf().ContractedBy(4), ref this.pos2, new Rect(inRect.x, inRect.y, num, WorthyKillDefs.Count * 22f), true);
            foreach (ThingDef td in WorthyKillDefs.OrderBy(xz => HunterMarkingSystem.RaceDefaultMarkDict.TryGetValue(xz).MarkDef.stages[0].label))
            {
                if (!listed.Contains(td.label))
                {
                    listed.Add(td.label);
                    MarkData markData = HunterMarkingSystem.RaceDefaultMarkDict.TryGetValue(td);
                    Widgets.Label(new Rect(x, num3, num, 32f), markData.MarkDef.stages[0].label + " : " + markData.Label + " Score: " + markData.MarkScore);
                    num3 += 22f;
                }
            }
            Widgets.EndScrollView();

            /*
             * //    Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().BottomHalf().TopHalf().ContractedBy(4), "setting3: Desc", ref settings.setting3);
             * //    Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().BottomHalf().BottomHalf().ContractedBy(4), "setting4: Desc", ref settings.setting4);
             *
             * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().TopHalf().TopHalf().ContractedBy(4), "setting5: Desc", ref settings.setting5);
             * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().TopHalf().BottomHalf().ContractedBy(4), "setting6: Desc", ref settings.setting6);
             *
             * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().BottomHalf().TopHalf().ContractedBy(4), "setting7: Desc", ref settings.setting7);
             * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().BottomHalf().BottomHalf().ContractedBy(4), "setting8: Desc", ref settings.setting8);
             */
            this.settings.Write();
        }
Ejemplo n.º 14
0
        public static bool isWorthyKillFor(this Pawn x, Pawn y)
        {
            bool result = false;

            if (x != null)
            {
                MarkData markDatax = new MarkData(x);
                MarkData markDatay = new MarkData(y);
                if (markDatax.MarkScore > (markDatay.MarkScore * Settings.SettingsHelper.latest.MinWorthyKill))
                {
                    result = true;
                }
                //    Log.Message(string.Format("{0} Worthy Kill for {1} : {4}, Score: \n{0}: {2} Vs {1}: {3},", x.LabelShortCap, y.LabelShortCap, markDatax.MarkScore, markDatay.MarkScore, result));
            }
            else
            {
                //    Log.Message("X == null");
            }
            return(result);
        }
Ejemplo n.º 15
0
    public MarkData[] SumMarkDatas(MarkData[] a, MarkData[] b)
    {
        MarkData[] temp = new MarkData[(a.Length >= b.Length ? a.Length : b.Length)];

        for (int i = 0; i < a.Length; i++)
        {
            temp[i] = a[i];
        }

        for (int i = 0; i < b.Length; i++)
        {
            for (int j = 0; j < temp.Length; j++)
            {
                if (b[i].pos == temp[j].pos)
                {
                    temp[j].val += b[i].val;
                }
            }
        }
        return(temp);
    }
Ejemplo n.º 16
0
        public static XMarker MakeMarker(Type t, float time, XTrack track)
        {
            XMarker  marker = null;
            MarkData data   = null;

            if (t == typeof(XJumpMarker))
            {
                data = new JumpMarkData()
                {
                    time = time
                };
                marker = XSeqenceFactory.GetMarker(track, data);
            }
            else if (t == typeof(XSlowMarker))
            {
                data = new SlowMarkData()
                {
                    time = time, slowRate = 0.5f
                };
                marker = XSeqenceFactory.GetMarker(track, data);
            }
            else if (t == typeof(XActiveMark))
            {
                data = new ActiveMarkData()
                {
                    time = time
                };
                marker = XSeqenceFactory.GetMarker(track, data);
            }
            else
            {
                Debug.LogError("unknown mark: " + t);
            }
            if (marker != null)
            {
                track.AddMarker(marker, data);
            }
            return(marker);
        }
Ejemplo n.º 17
0
        public static MarkData CreateMarkData(MarkType type)
        {
            MarkData data = null;

            switch (type)
            {
            case MarkType.Active:
                data = new ActiveMarkData();
                break;

            case MarkType.Jump:
                data = new JumpMarkData();
                break;

            case MarkType.Slow:
                data = new SlowMarkData();
                break;

            default:
                Debug.LogError("unknowm marktype: " + type);
                break;
            }
            return(data);
        }
Ejemplo n.º 18
0
        public override void DoSettingsWindowContents(Rect inRect)
        {
            this.settings.MinWorthyKill = Widgets.HorizontalSlider(inRect.TopHalf().BottomHalf().TopHalf().BottomHalf().ContractedBy(4),
                                                                   this.settings.MinWorthyKill, 0f, 3f, true,
                                                                   "HMS_MinScoreFactor".Translate(this.settings.MinWorthyKill * 100, 10 * this.settings.MinWorthyKill)
                                                                   , "0%", "300%");

            Widgets.TextFieldNumeric <float>(inRect.TopHalf().TopHalf().TopHalf().BottomHalf().LeftHalf().LeftHalf().ContractedBy(4), ref settings.MinWorthyKill, ref settings.MinWorthyKillBuffer, 0.001f, 10f);

            List <ThingDef> WorthyKillDefs = HunterMarkingSystem.RaceDefaultMarkDict.Keys.ToList();
            List <string>   listed         = new List <string>();
            Rect            listrect       = inRect.BottomHalf();
            Rect            markablerect   = listrect.LeftHalf();
            Rect            defscorerect   = listrect.RightHalf();

            Widgets.Label(inRect.TopHalf().BottomHalf().BottomHalf().BottomHalf().RightHalf().ContractedBy(4), "HMS_KillMarksScores".Translate(WorthyKillDefs.Count));
            Widgets.BeginScrollView(defscorerect, ref this.pos2, new Rect(defscorerect.x, defscorerect.y, defscorerect.width, WorthyKillDefs.Count * 22f), true);
            float num1 = defscorerect.y;

            foreach (ThingDef td in WorthyKillDefs.OrderBy(xz => xz.label))
            {
                if (!listed.Contains(td.label))
                {
                    listed.Add(td.label);
                    MarkData markData = HunterMarkingSystem.RaceDefaultMarkDict.TryGetValue(td);
                    Widgets.Label(new Rect(defscorerect.x, num1, defscorerect.ContractedBy(4).width, 22f), "HMS_KillMarksScore".Translate(markData.Label, markData.MarkScore, markData.MarkDef.stages[0].label));
                    num1 += 22f;
                }
            }
            Widgets.EndScrollView();
            Widgets.Label(inRect.TopHalf().BottomHalf().BottomHalf().BottomHalf().LeftHalf().ContractedBy(4), "HMS_MarkableScores".Translate(HunterMarkingSystem.MarkableRaceDict.Count));
            Widgets.BeginScrollView(markablerect.ContractedBy(4), ref this.pos, new Rect(markablerect.LeftHalf().x, markablerect.LeftHalf().y, markablerect.LeftHalf().width, HunterMarkingSystem.MarkableRaceDict.Count * 22f), true);
            float num2 = markablerect.y;

            foreach (ThingDef td in HunterMarkingSystem.MarkableRaceDict.OrderBy(xz => xz.label))
            {
                MarkData markData = HunterMarkingSystem.RaceDefaultMarkDict.TryGetValue(td);
                if (markData == null)
                {
                    markData = new MarkData(td);
                    HunterMarkingSystem.RaceDefaultMarkDict.SetOrAdd(td, markData);
                }
                Widgets.Label(new Rect(markablerect.x, num2, markablerect.ContractedBy(4).width, 22f), "HMS_MarkableScore".Translate(td.LabelCap + (td.LabelCap == "Human"? "(" + td.defName + ")" : ""), markData.MarkScore * this.settings.MinWorthyKill, td.defName));

                num2 += 22f;
            }

            Widgets.EndScrollView();

            /*
             * //    Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().BottomHalf().TopHalf().ContractedBy(4), "setting3: Desc", ref settings.setting3);
             * //    Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().BottomHalf().BottomHalf().ContractedBy(4), "setting4: Desc", ref settings.setting4);
             *
             * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().TopHalf().TopHalf().ContractedBy(4), "setting5: Desc", ref settings.setting5);
             * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().TopHalf().BottomHalf().ContractedBy(4), "setting6: Desc", ref settings.setting6);
             *
             * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().BottomHalf().TopHalf().ContractedBy(4), "setting7: Desc", ref settings.setting7);
             * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().BottomHalf().BottomHalf().ContractedBy(4), "setting8: Desc", ref settings.setting8);
             */
            this.settings.Write();
        }
Ejemplo n.º 19
0
 public void Initial(XTrack tk, MarkData data)
 {
     track = tk;
     Data  = data;
     OnPostBuild();
 }
Ejemplo n.º 20
0
 public WindowSetMark()
 {
     ViewData = new MarkData();
     InitializeComponent();
 }
Ejemplo n.º 21
0
 public Mark(Device device, PPDFramework.Resource.ResourceManager resourceManager, CMarkImagePaths filenames, MarkData md, float[] eval, float gap, DisplayState dState, bool AC)
 {
     this.x               = md.X;
     this.y               = md.Y;
     this.angle           = md.Angle;
     this.time            = md.Time;
     this.resourceManager = resourceManager;
     this.device          = device;
     this.eval            = eval;
     this.filenames       = filenames;
     this.adjustgaptime   = gap;
     ButtonType           = md.ButtonType;
     this.dState          = dState;
     this.AC              = AC;
     Initialize();
 }
Ejemplo n.º 22
0
 public Mark(PPDDevice device, PPDFramework.Resource.ResourceManager resourceManager, MarkImagePathsBase filenames, MarkData md, ButtonType type, float[] eval,
             float gap, DisplayState dState, NoteType noteType, int sameTimingMarks, KeyValuePair <string, string>[] parameters, PostDrawManager postDrawManager) : base(device)
 {
     Position             = new Vector2(md.X, md.Y);
     Angle                = md.Angle;
     Time                 = md.Time;
     this.resourceManager = resourceManager;
     this.eval            = eval;
     this.filenames       = filenames;
     this.adjustGapTime   = gap;
     this.sameTimingMarks = sameTimingMarks;
     this.ButtonType      = type;
     this.displayState    = dState;
     this.NoteType        = noteType;
     this.ID              = md.ID;
     Parameters           = new Dictionary <object, object>();
     foreach (var parameter in parameters)
     {
         Parameters[parameter.Key] = parameter.Value;
     }
     this.postDrawManager = postDrawManager;
 }