示例#1
0
 /// <summary>
 /// 获取玩家是否拥有指定Perk-a-Cola
 /// </summary>
 /// <param name="player">指定玩家</param>
 /// <param name="perk">要查询的Perk-a-Cola的对象</param>
 /// <returns></returns>
 public static bool HasPerkCola(this Entity player, PerkColaType perk)
 {
     if (player.HasField(PerkCola.QueryDvar(perk)) && player.GetField <int>(PerkCola.QueryDvar(perk)) != 0)
     {
         return(true);
     }
     return(false);
 }
示例#2
0
        public static string QueryDvar(PerkColaType type)
        {
            switch (type)
            {
            case PerkColaType.QUICK_REVIVE:
                return("perk_revive");

            case PerkColaType.SPEED_COLA:
                return("perk_speedcola");

            case PerkColaType.JUGGERNOG:
                return("perk_juggernog");

            case PerkColaType.STAMIN_UP:
                return("perk_staminup");

            case PerkColaType.MULE_KICK:
                return("perk_mulekick");

            case PerkColaType.DOUBLE_TAP:
                return("perk_doubletap");

            case PerkColaType.DEAD_SHOT:
                return("perk_deadshot");

            case PerkColaType.PHD:
                return("perk_phd");

            case PerkColaType.ELECTRIC_CHERRY:
                return("perk_cherry");

            case PerkColaType.WIDOW_S_WINE:
                return("perk_widow");

            case PerkColaType.VULTURE_AID:
                return("perk_vulture");

            case PerkColaType.TOMBSTONE:
                return("perk_tombstone");

            default:
                return(null);
            }
        }
示例#3
0
        /// <summary>
        /// 删除指定玩家指定的Perk-a-Cola
        /// </summary>
        /// <param name="player">指定玩家</param>
        /// <param name="perk">要删除的Perk-a-Cola的对象</param>
        public static void RemovePerkCola(this Entity player, PerkColaType type, bool tempdisable = false)
        {
            var perk = new PerkCola(type);

            perk.TakePlayerPerkCola(player);

            if (tempdisable)
            {
                var list = player.GetPerkColaHud();
                foreach (var item in list)
                {
                    if (item.GetField <PerkColaType>("perk") == type)
                    {
                        item.Call("fadeovertime", 0.5f);
                        item.Alpha = 0;
                        break;
                    }
                }
            }
        }
示例#4
0
        /// <summary>
        /// 给与指定玩家指定的Perk-a-Cola,但是不播放给与特效
        /// </summary>
        /// <param name="player">指定玩家</param>
        /// <param name="perk">要给与的Perk-a-Cola的对象</param>
        public static void GivePerkColaNoEffect(this Entity player, PerkColaType type)
        {
            var perk = new PerkCola(type);

            perk.GiveToPlayer(player, false);
        }
示例#5
0
        public PerkColaMachine(Vector3 origin, Vector3 angle, PerkColaType perk) : base(BoxType.PerkColaMachine, origin, angle, 50)
        {
            if (MapEdit.spawnedPerkColas.Contains(perk))
            {
                Dispose();
                return;
            }
            MapEdit.spawnedPerkColas.Add(perk);

            PerkCola    = new PerkCola(perk);
            Icon        = PerkCola.GetIcon();
            ObjectiveId = Hud.CreateObjective(Origin, Icon);
            Cost        = PerkCola.GetCost();

            string fullname = PerkCola.GetFullName();

            OnTriggerString += player =>
            {
                if ((player.GetTeam() == "allies" && Utility.GetDvar <int>("allies_fire_sale") == 1) || (player.GetTeam() == "axis" && Utility.GetDvar <int>("axis_fire_sale") == 1))
                {
                    return("Press ^3[{+activate}] ^7to buy " + fullname + ". [Cost: ^2$^610^7]");
                }
                return("Press ^3[{+activate}] ^7to buy " + fullname + ". [Cost: ^2$^3" + Cost + "^7]");
            };

            OnTriggerUse += player =>
            {
                if (!player.IsAlive)
                {
                    return;
                }
                if ((player.GetTeam() == "allies" && Utility.GetDvar <int>("allies_fire_sale") == 1) || (player.GetTeam() == "axis" && Utility.GetDvar <int>("axis_fire_sale") == 1) && player.GetCash() >= 10)
                {
                    if (player.PerkColasCount() >= 4)
                    {
                        player.PrintlnBold("^1You already have 4 Perk-a-Cola.");
                        return;
                    }
                    if (player.HasPerkCola(PerkCola))
                    {
                        player.PrintlnBold("^1You already have " + fullname + ".");
                        return;
                    }
                    player.PayCash(10);
                    player.GivePerkCola(PerkCola);
                }
                else if (player.GetCash() >= Cost)
                {
                    if (player.PerkColasCount() >= 4)
                    {
                        player.PrintlnBold("^1You already have 4 Perk-a-Cola.");
                        return;
                    }
                    if (player.HasPerkCola(PerkCola))
                    {
                        player.PrintlnBold("^1You already have " + fullname + ".");
                        return;
                    }
                    player.PayCash(Cost);
                    player.GivePerkCola(PerkCola);
                }
                else
                {
                    player.Println("^1Not enough cash for " + fullname + ". Need ^2$^3" + Cost);
                }
            };
        }
示例#6
0
 public PerkCola(PerkColaType type)
 {
     Type = type;
 }