Ejemplo n.º 1
0
        public static bool CanLeaveSquad()
        {
            bool            result          = true;
            SquadController squadController = Service.Get <SquadController>();
            CurrentPlayer   currentPlayer   = Service.Get <CurrentPlayer>();
            Squad           currentSquad    = squadController.StateManager.GetCurrentSquad();

            if (currentSquad == null)
            {
                return(result);
            }
            SquadWarStatusType currentStatus = squadController.WarManager.GetCurrentStatus();

            if (currentStatus == SquadWarStatusType.PhaseCooldown)
            {
                return(result);
            }
            SquadMember squadMemberById = SquadUtils.GetSquadMemberById(currentSquad, currentPlayer.PlayerId);

            if (squadController.WarManager.IsMemberInWarParty(squadMemberById.MemberID) || squadController.WarManager.IsSquadMemberInWarOrMatchmaking(squadMemberById))
            {
                result = false;
            }
            return(result);
        }
Ejemplo n.º 2
0
    void UpdateSeen()
    {
        int        layerMask = 1 << 10;
        RaycastHit hit;

        Collider[] squad = Physics.OverlapSphere(transform.position, 25.0f, layerMask);

        layerMask = (1 << 8 | 1 << 10 | 1 << 12);

        foreach (Collider man in squad)
        {
            SquadMember squadman = man.GetComponent <SquadMember>();
            bool        contains = seen.Contains(squadman);

            if (Physics.Raycast(transform.position + transform.up * 0.8f, man.transform.position - transform.position, out hit, 30.0f, layerMask))
            {
                if (squadman != null && hit.collider == man && !contains)
                {
                    seen.Add(squadman);
                }
                else if (contains)
                {
                    seen.Remove(squadman);
                }
            }
            else if (contains)
            {
                seen.Remove(squadman);
            }
        }
    }
Ejemplo n.º 3
0
        public void Join(int id)
        {
            using (var model = new ShcDataModel())
            {
                var memberShip = model.SquadMembers.SingleOrDefault(v => v.Squad == id && v.Userhash == Userhash);

                if (memberShip == null)
                {
                    memberShip = new SquadMember()
                    {
                        Squad = id, Userhash = Userhash
                    };
                    model.SquadMembers.Add(memberShip);

                    model.SaveChanges();
                }

                var squadItems = model.SquadItems.Where(sqi => sqi.Squad == id).Select(x => x.Item);
                var useritems  = model.UserItems.Where(ui => ui.Userhash == Userhash && ui.Squad == id).Select(x => x.Item);
                var join       = squadItems.Except(useritems);
                foreach (var item in join)
                {
                    model.UserItems.Add(new UserItem {
                        Userhash = Userhash, Item = item, Squad = id, Value = ItemValue.None
                    });
                }

                model.SaveChanges();
            }
        }
Ejemplo n.º 4
0
        private static SquadMember MapSquadMember(IDataReader reader, out int sm_SquadId)
        {
            SquadMember sm = new SquadMember();

            int               ord = 0;
            PersonBase        pb  = new PersonBase();
            SquadMemberStatus sms = new SquadMemberStatus();

            sm.Id             = reader.GetSafeInt32(ord++);
            sm.SquadId        = reader.GetSafeInt32(ord++);
            sm_SquadId        = sm.SquadId;
            pb.Id             = reader.GetSafeInt32(ord++);
            sm.LeaderComment  = reader.GetSafeString(ord++);
            sm.DateCreated    = reader.GetSafeDateTime(ord++);
            sm.DateModified   = reader.GetSafeDateTime(ord++);
            sms.Id            = reader.GetSafeInt32(ord++);
            sms.Name          = reader.GetSafeString(ord++);
            pb.FirstName      = reader.GetSafeString(ord++);
            pb.MiddleName     = reader.GetSafeString(ord++);
            pb.LastName       = reader.GetSafeString(ord++);
            pb.PhoneNumber    = reader.GetSafeString(ord++);
            pb.Email          = reader.GetSafeString(ord++);
            pb.PhotoKey       = reader.GetSafeString(ord++);
            pb.ProfilePicture = SiteConfig.GetUrlFromFileKey(pb.PhotoKey);//this replaces the url
            sm.IsLeader       = reader.GetSafeBool(ord++);

            sm.Person = pb;
            sm.Status = sms;

            return(sm);
        }
Ejemplo n.º 5
0
        private void SetupButtonBasedOnRole(UXButton btn, SquadMember member, bool ownerOnly)
        {
            CurrentPlayer currentPlayer = Service.CurrentPlayer;

            if (member != null && (currentPlayer.PlayerId == member.MemberID || member.Role == SquadRole.Owner))
            {
                btn.Visible = false;
            }
            else
            {
                SquadStateManager stateManager = Service.SquadController.StateManager;
                if (stateManager.Role == SquadRole.Owner)
                {
                    btn.Visible = true;
                }
                else if (!ownerOnly && stateManager.Role == SquadRole.Officer)
                {
                    btn.Visible = true;
                }
                else
                {
                    btn.Visible = false;
                }
            }
        }
Ejemplo n.º 6
0
    public void damage(float damage)
    {
        //Do damage to a random squad member
        int         randomGuyToDamageIndex = Random.Range(0, this.SquadMembers.Count);
        SquadMember DamagedGuy             = SquadMembers [randomGuyToDamageIndex] as SquadMember;

        DamagedGuy.health -= damage;
        if (DamagedGuy.health <= 0.0f)           //Oh noes squaddie is dead
        {
            SquadMembers.RemoveAt(randomGuyToDamageIndex);
            DamagedGuy.die();
        }

        if (this.SquadMembers.Count <= 0)           //Everyone's dead, screw it
        {
            this.health = 0.0f;
            return;
        }

        float totalHealth = 0.0f;
        float maxHealth   = 0.001f;       //So we don't divide by 0

        foreach (SquadMember Squaddie in this.SquadMembers)
        {
            totalHealth += Squaddie.health;
            maxHealth   += 100.0f;
        }

        //Since health is a percentage
        this.health = (totalHealth / maxHealth) * 100.0f;
    }
Ejemplo n.º 7
0
        public int SortByActive(UXElement elementA, UXElement elementB)
        {
            SquadMember squadMember  = (SquadMember)elementA.Tag;
            SquadMember squadMember2 = (SquadMember)elementB.Tag;

            return((int)(squadMember2.LastLoginTime - squadMember.LastLoginTime));
        }
Ejemplo n.º 8
0
        public int SortByReceived(UXElement elementA, UXElement elementB)
        {
            SquadMember squadMember  = (SquadMember)elementA.Tag;
            SquadMember squadMember2 = (SquadMember)elementB.Tag;

            return(squadMember2.TroopsReceived - squadMember.TroopsReceived);
        }
Ejemplo n.º 9
0
        public int SortByDefenses(UXElement elementA, UXElement elementB)
        {
            SquadMember squadMember  = (SquadMember)elementA.Tag;
            SquadMember squadMember2 = (SquadMember)elementB.Tag;

            return(squadMember2.DefensesWon - squadMember.DefensesWon);
        }
Ejemplo n.º 10
0
        public int SortByAttacks(UXElement elementA, UXElement elementB)
        {
            SquadMember squadMember  = (SquadMember)elementA.Tag;
            SquadMember squadMember2 = (SquadMember)elementB.Tag;

            return(squadMember2.AttacksWon - squadMember.AttacksWon);
        }
Ejemplo n.º 11
0
        public int SortByMedals(UXElement elementA, UXElement elementB)
        {
            SquadMember squadMember  = (SquadMember)elementA.Tag;
            SquadMember squadMember2 = (SquadMember)elementB.Tag;

            return(squadMember2.Score - squadMember.Score);
        }
Ejemplo n.º 12
0
    void UpdateDanger()
    {
        Collider[] enemies = Physics.OverlapSphere(transform.position, 35.0f, (1 << 11));
        Collider[] squads  = Physics.OverlapSphere(transform.position, 35.0f, (1 << 10));
        RaycastHit hit;

        foreach (Collider enemy in enemies)
        {
            Enemy thisEnemy = enemy.GetComponent <Enemy>();
            if (thisEnemy == null)
            {
                continue;
            }

            //Debug.DrawRay(transform.position + transform.up * 1.8f, enemy.transform.position - (transform.position + transform.up * 1.8f), Color.magenta, 0.5f);

            //int layerMask = (1 << 5 | 1 << 10);
            int layerMask = (1 << 8 | 1 << 12);
            //layerMask = ~layerMask;

            float dist = Vector3.Distance(transform.position, enemy.transform.position);

            if (!Physics.Raycast(transform.position + transform.up * 0.5f,
                                 enemy.transform.position - (transform.position + transform.up * 0.5f), out hit, dist, layerMask, QueryTriggerInteraction.Ignore))
            {
                //if (hit.collider.tag == "Enemy" && hit.collider.GetComponent<Enemy>() == thisEnemy)
                //{
                //Debug.DrawRay(transform.position + transform.up * 0.5f, enemy.transform.position - (transform.position + transform.up * 0.5f), Color.magenta, 0.5f);
                enemyDanger  += 100.0f;
                grenadeEnemy += 35.0f - dist;
                //}
            }
        }

        foreach (Collider squad in squads)
        {
            SquadMember      thisSquad = squad.GetComponent <SquadMember>();
            PlayerController player    = squad.GetComponent <PlayerController>();

            //Debug.DrawRay(transform.position + transform.up * 1.8f, squad.transform.position - (transform.position + transform.up * 1.8f), Color.cyan, 0.5f);

            //int layerMask = (1 << 5 | 1 << 11);
            int layerMask = (1 << 8 | 1 << 12);
            //layerMask = ~layerMask;

            float dist = Vector3.Distance(transform.position, squad.transform.position);

            if (!Physics.Raycast(transform.position + transform.up * 0.5f,
                                 squad.transform.position - (transform.position + transform.up * 0.5f), out hit, dist, layerMask, QueryTriggerInteraction.Ignore))
            {
                //if (hit.collider.tag == "SquadMan" && hit.collider.GetComponent<SquadMember>() == thisSquad)
                //{
                //Debug.DrawRay(transform.position + transform.up * 0.5f, squad.transform.position - (transform.position + transform.up * 0.5f), Color.cyan, 0.5f);
                squadDanger  += 100.0f;
                grenadeSquad += 35.0f - dist;
                //}
            }
        }
    }
Ejemplo n.º 13
0
        public static void SetSquadMemberRole(Squad squad, string memberId, SquadRole role)
        {
            SquadMember squadMemberById = SquadUtils.GetSquadMemberById(squad, memberId);

            if (squadMemberById != null)
            {
                squadMemberById.Role = role;
            }
        }
Ejemplo n.º 14
0
 private bool CheckAndCreateMemberEntry(SquadMember squadMember)
 {
     if (this.GetSquadMemberElement(squadMember) == null)
     {
         UXElement uXElement = this.CreateSquadMemberElement(squadMember);
         return(true);
     }
     return(false);
 }
Ejemplo n.º 15
0
        public static SquadMsg GenerateMessageFromSquadMemberResponse(SquadMemberResponse response)
        {
            SquadMember squadMember = new SquadMember();

            squadMember.FromObject(response.SquadMemberData);
            return(new SquadMsg
            {
                SquadMemberResponse = squadMember
            });
        }
Ejemplo n.º 16
0
        public void SyncCurrentPlayerPlanet()
        {
            CurrentPlayer currentPlayer   = Service.CurrentPlayer;
            SquadMember   squadMemberById = SquadUtils.GetSquadMemberById(this.StateManager.GetCurrentSquad(), currentPlayer.PlayerId);

            if (squadMemberById != null)
            {
                squadMemberById.Planet = currentPlayer.PlanetId;
            }
        }
Ejemplo n.º 17
0
        public static void RemoveSquadMember(Squad squad, string memberId)
        {
            SquadMember squadMemberById = SquadUtils.GetSquadMemberById(squad, memberId);

            if (squadMemberById != null && squad != null)
            {
                squad.MemberList.Remove(squadMemberById);
                squad.BattleScore -= squadMemberById.Score;
                squad.MemberCount--;
            }
        }
Ejemplo n.º 18
0
        private void OnDemoteClicked(UXButton button)
        {
            SquadMember squadMember = button.Tag as SquadMember;

            Service.EventManager.SendEvent(EventId.SquadNext, null);
            string message = this.lang.Get("DEMOTE_SQUAD_MEMBER_ALERT", new object[]
            {
                squadMember.MemberName,
                this.lang.Get("SQUAD_MEMBER", new object[0])
            });

            AlertScreen.ShowModal(false, null, message, new OnScreenModalResult(this.OnAlertDemoteMemberResult), squadMember, true);
        }
Ejemplo n.º 19
0
        public void SyncCurrentPlayerRole()
        {
            SquadMember squadMemberById = SquadUtils.GetSquadMemberById(this.StateManager.GetCurrentSquad(), Service.CurrentPlayer.PlayerId);

            if (squadMemberById != null)
            {
                this.StateManager.Role = squadMemberById.Role;
                if (this.StateManager.JoinDate == 0u)
                {
                    this.StateManager.JoinDate = squadMemberById.JoinDate;
                }
            }
        }
Ejemplo n.º 20
0
        private void OnAlertDemoteMemberResult(object result, object cookie)
        {
            if (result == null)
            {
                return;
            }
            SquadMember     squadMember     = cookie as SquadMember;
            SquadMsg        message         = SquadMsgUtils.CreateDemoteMemberMessage(squadMember.MemberID, new SquadController.ActionCallback(this.OnMemberChangeComplete), squadMember);
            SquadController squadController = Service.SquadController;

            squadController.TakeAction(message);
            ProcessingScreen.Show();
        }
Ejemplo n.º 21
0
        private void OnViewClicked(UXButton button)
        {
            GameUtils.ExitEditState();
            Service.EventManager.SendEvent(EventId.SquadNext, null);
            SquadUtils.ForceCloseSquadWarScreen();
            Service.UXController.HUD.DestroySquadScreen();
            SquadMember squadMember = button.Tag as SquadMember;

            Service.NeighborVisitManager.VisitNeighbor(squadMember.MemberID);
            PlayerVisitTag cookie = new PlayerVisitTag(true, false, "SQUAD_MEMBERS", squadMember.MemberID);

            Service.EventManager.SendEvent(EventId.VisitPlayer, cookie);
        }
Ejemplo n.º 22
0
    public void SpawnTeamMember(Vector2 location)
    {
        GameObject newTeamMemberObject = new GameObject("team_member");

        newTeamMemberObject.transform.parent   = this.transform;
        newTeamMemberObject.transform.position = new Vector3(location.x, location.y, -1.0f);

        SquadMember newTeamMember = newTeamMemberObject.AddComponent <SquadMember>();

        newTeamMember.SetTeamID(m_teamID);

        m_teamMembers.Add(newTeamMember);
    }
Ejemplo n.º 23
0
 private void SetPromoteDemoteOnButton(SquadMember squadMember, UXButton btn, UXLabel label)
 {
     if (squadMember.Role == SquadRole.Officer)
     {
         label.Text    = this.lang.Get("s_Demote", new object[0]);
         btn.OnClicked = new UXButtonClickedDelegate(this.OnDemoteClicked);
     }
     else
     {
         label.Text    = this.lang.Get("s_Promote", new object[0]);
         btn.OnClicked = new UXButtonClickedDelegate(this.OnPromoteClicked);
     }
     btn.Enabled = true;
 }
Ejemplo n.º 24
0
        private UXElement CreateSquadMemberElement(SquadMember squadMember)
        {
            string   text     = "member_" + squadMember.MemberID;
            UXButton uXButton = this.squadMemberGrid.CloneTemplateItem(text) as UXButton;

            this.squadMemberGrid.AddItem(uXButton, 0);
            uXButton.Tag       = squadMember;
            uXButton.OnClicked = new UXButtonClickedDelegate(this.MemberItemClicked);
            SquadMemberElements squadMemberElements = new SquadMemberElements();

            SquadScreenMembersView.SquadMemberElementsSetup(this.squadMemberGrid, squadMemberElements, text);
            squadMemberElements.ButtonContainer.Visible = false;
            squadMemberElements.ButtonContainer.InitTweenComponent();
            return(uXButton);
        }
Ejemplo n.º 25
0
        private void UpdateMembers()
        {
            SquadController squadController = Service.SquadController;
            Squad           currentSquad    = squadController.StateManager.GetCurrentSquad();

            if (currentSquad == null)
            {
                return;
            }
            bool             flag        = false;
            List <UXElement> elementList = this.squadMemberGrid.GetElementList();

            for (int i = 0; i < elementList.Count; i++)
            {
                SquadMember squadMember = elementList[i].Tag as SquadMember;
                if (!SquadUtils.IsPlayerInSquad(squadMember.MemberID, currentSquad))
                {
                    UXElement uXElement = elementList[i];
                    this.squadMemberGrid.RemoveItem(uXElement);
                    this.screen.DestroyElement(uXElement);
                    i--;
                    flag = true;
                }
            }
            int j     = 0;
            int count = currentSquad.MemberList.Count;

            while (j < count)
            {
                if (this.CheckAndCreateMemberEntry(currentSquad.MemberList[j]))
                {
                    flag = true;
                }
                j++;
            }
            int k      = 0;
            int count2 = currentSquad.MemberList.Count;

            while (k < count2)
            {
                this.UpdateSquadMember(currentSquad.MemberList[k]);
                k++;
            }
            if (flag)
            {
                this.squadMemberGrid.RepositionItems();
            }
        }
Ejemplo n.º 26
0
        protected void InitTroopGrid()
        {
            base.InitGrid();
            GamePlayer worldOwner = GameUtils.GetWorldOwner();
            List <SquadDonatedTroop> worldOwnerSquadBuildingTroops = SquadUtils.GetWorldOwnerSquadBuildingTroops();
            int count = worldOwnerSquadBuildingTroops.Count;

            if (count > 0)
            {
                Dictionary <string, string> dictionary = null;
                if (worldOwner.Squad != null)
                {
                    dictionary = new Dictionary <string, string>();
                    List <SquadMember> memberList = worldOwner.Squad.MemberList;
                    int i      = 0;
                    int count2 = memberList.Count;
                    while (i < count2)
                    {
                        SquadMember squadMember = memberList[i];
                        dictionary.Add(squadMember.MemberID, squadMember.MemberName);
                        i++;
                    }
                }
                StaticDataController staticDataController = Service.StaticDataController;
                for (int j = 0; j < count; j++)
                {
                    SquadDonatedTroop squadDonatedTroop = worldOwnerSquadBuildingTroops[j];
                    TroopTypeVO       troopTypeVO       = staticDataController.Get <TroopTypeVO>(squadDonatedTroop.TroopUid);
                    int totalAmount = squadDonatedTroop.GetTotalAmount();
                    if (totalAmount > 0)
                    {
                        string tooltipString = this.GetTooltipString(troopTypeVO, squadDonatedTroop, dictionary);
                        base.AddTroopItem(troopTypeVO, totalAmount, tooltipString);
                    }
                }
            }
            if (!this.inVisitMode && worldOwner.Squad != null && SquadUtils.GetDonatedTroopStorageUsedByWorldOwner() < this.buildingInfo.Storage)
            {
                this.AddTroopRequestItem();
            }
            else
            {
                this.requestResendCost = null;
            }
            base.RepositionGridItems();
        }
Ejemplo n.º 27
0
        private UXElement GetSquadMemberElement(SquadMember squadMember)
        {
            List <UXElement> elementList = this.squadMemberGrid.GetElementList();
            int i     = 0;
            int count = elementList.Count;

            while (i < count)
            {
                SquadMember squadMember2 = elementList[i].Tag as SquadMember;
                if (squadMember2 != null && squadMember2.MemberID == squadMember.MemberID)
                {
                    return(elementList[i]);
                }
                i++;
            }
            return(null);
        }
Ejemplo n.º 28
0
        public async Task <IActionResult> OnGetAsync(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            SquadMember = await _context.SquadMember
                          .Include(s => s.Member)
                          .Include(s => s.Squad).FirstOrDefaultAsync(m => m.SquadMemberId == id);

            if (SquadMember == null)
            {
                return(NotFound());
            }
            return(Page());
        }
Ejemplo n.º 29
0
        public async Task <IActionResult> OnPostAsync(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            SquadMember = await _context.SquadMember.FindAsync(id);

            if (SquadMember != null)
            {
                _context.SquadMember.Remove(SquadMember);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
Ejemplo n.º 30
0
        private void AddSquadMember(SquadMember member)
        {
            int       num        = this.squadMemberGrid.Count + 1;
            string    itemUid    = "member_" + num;
            UXElement item       = this.squadMemberGrid.CloneTemplateItem(itemUid);
            Lang      lang       = Service.Get <Lang>();
            UXButton  subElement = this.squadMemberGrid.GetSubElement <UXButton>(itemUid, "BtnVisit");

            if (member.MemberID != Service.Get <CurrentPlayer>().PlayerId)
            {
                subElement.OnClicked = new UXButtonClickedDelegate(this.screen.OnVisitClicked);
                subElement.Tag       = member.MemberID;
                UXLabel subElement2 = this.squadMemberGrid.GetSubElement <UXLabel>(itemUid, "LabelBtnVisit");
                subElement2.Text = lang.Get("s_Visit", new object[0]);
            }
            else
            {
                subElement.Visible = false;
            }
            UXLabel subElement3 = this.squadMemberGrid.GetSubElement <UXLabel>(itemUid, "LabelSquadInfoMemberName");

            subElement3.Text = member.MemberName;
            UXLabel subElement4 = this.squadMemberGrid.GetSubElement <UXLabel>(itemUid, "LabelSquadInfoMemberRank");

            subElement4.Text = num.ToString();
            UXLabel subElement5 = this.squadMemberGrid.GetSubElement <UXLabel>(itemUid, "LabelSquadInfoMemberType");

            subElement5.Text = LangUtils.GetSquadRoleDisplayName(member.Role);
            UXLabel subElement6 = this.squadMemberGrid.GetSubElement <UXLabel>(itemUid, "LabelSquadInfoMemberScore");

            subElement6.Text = lang.ThousandsSeparated(member.Score);
            UXLabel subElement7 = this.squadMemberGrid.GetSubElement <UXLabel>(itemUid, "LabelSquadInfoTroopsDonated");

            subElement7.Text = lang.Get("TROOPS_DONATED", new object[]
            {
                lang.ThousandsSeparated(member.TroopsDonated)
            });
            UXLabel subElement8 = this.squadMemberGrid.GetSubElement <UXLabel>(itemUid, "LabelSquadInfoTroopsReceived");

            subElement8.Text = lang.Get("TROOPS_RECEIVED", new object[]
            {
                lang.ThousandsSeparated(member.TroopsReceived)
            });
            this.squadMemberGrid.AddItem(item, num);
        }
Ejemplo n.º 31
0
 public void AddMember(string pilot)
 {
     SquadMember squadMember = new SquadMember();
     squadMember.PilotName = pilot;
     Members.Add(squadMember);
 }