Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- // Needed core files
- using BattleCore;
- using BattleCore.Events;
- using BattleCorePsyOps;
- namespace BattleZone
- {
- public class Scorekeeper
- {
- // Custom chat module
- ShortChat msg = new ShortChat();
- private int[] m_PointsAwarded = {
- 10, // Green
- 75, // Kill
- -10, //Death
- -275 //TK
- };
- private bool m_GreenPointBonus = true;
- private bool m_KillPointBonus = true;
- // If we want to add damage to public points
- private bool m_DamagePointBonus = true;
- // what percent of damage to add to points
- private double m_DamagePercPoints = 1;
- public void LoadScoreCard(ZonePlayer zP)
- {
- if (zP.ScoreCard == null)
- {
- zP.ScoreCard = new ScoreCard();
- }
- else
- {
- ///////////////////////////////////
- // add db load stuff here /////
- ///////////////////////////////////
- }
- }
- public void UpdateKillPoints(PlayerDeathEvent p, ZonePlayer attacker, ZonePlayer victim, Queue<EventArgs> q)
- {
- // Award points only if mode is on
- if (!m_KillPointBonus) return;
- // Prize points for death - should be negative = deduction
- victim.ScoreCard.PublicPoints = (victim.ScoreCard.PublicPoints + m_PointsAwarded[2]) >= 0 ?
- victim.ScoreCard.PublicPoints + m_PointsAwarded[2] : 0;
- // Update highest bty
- victim.ScoreCard.HighestBounty = p.Bounty > victim.ScoreCard.HighestBounty ? p.Bounty : victim.ScoreCard.HighestBounty;
- // Handle team kill points
- if (attacker.Frequency == victim.Frequency)
- {
- attacker.ScoreCard.PublicPoints = (attacker.ScoreCard.PublicPoints + m_PointsAwarded[3]) >= 0 ?
- attacker.ScoreCard.PublicPoints + m_PointsAwarded[3] : 0;
- return;
- }
- // Regular kill award
- attacker.ScoreCard.PublicPoints += m_PointsAwarded[1];
- }
- public void UpdateDamagePoints(WatchDamageEvent w, ZonePlayer attacker, ZonePlayer victim, Queue<EventArgs> q)
- {
- if (!m_DamagePointBonus) return;
- // Team Damage penalty - include point deduction for self damage?
- if (attacker.Frequency == victim.Frequency)
- {
- attacker.ScoreCard.PublicPoints -= (int)(w.Damage * (m_DamagePercPoints * .01D));
- return;
- }
- // Points for regular damage
- attacker.ScoreCard.PublicPoints += (int)(w.Damage * (m_DamagePercPoints * .01D));
- }
- public void PlayerPrizeEvent(PrizeCollectedEvent p, ZonePlayer zP, Queue<EventArgs> q)
- {
- zP.ScoreCard.TotalGreens++;
- zP.ScoreCard.Bounty++;
- if (!m_GreenPointBonus) return;
- zP.ScoreCard.PublicPoints += m_PointsAwarded[0];
- }
- // Account printout
- public void ViewScoreCard(string requester, ZonePlayer accountholder, Queue<EventArgs> q)
- {
- ScoreCard info = accountholder.ScoreCard;
- if (info == null)
- {
- q.Enqueue(msg.pm(requester, "[ " + accountholder.Name + " ] does not have any recorded score card."));
- return;
- }
- q.Enqueue(msg.pm(requester, " -<[ " + accountholder.Name + " ]>-"));
- q.Enqueue(msg.pm(requester, "--------------------------------------+"));
- q.Enqueue(msg.pm(requester, ("Score Card Info ").PadRight(38) + "|"));
- q.Enqueue(msg.pm(requester, "--------------------------------------+"));
- q.Enqueue(msg.pm(requester, "Current Bounty " + info.Bounty.ToString().PadLeft(15)));
- q.Enqueue(msg.pm(requester, "Highest Bounty Attained" + info.Bounty.ToString().PadLeft(15)));
- q.Enqueue(msg.pm(requester, "Public Points " + info.PublicPoints.ToString().PadLeft(15)));
- q.Enqueue(msg.pm(requester, "Average Kill Bounty " + info.KillBountyAverage.ToString().PadLeft(15)));
- q.Enqueue(msg.pm(requester, "Your Ave Bty on Kill " + info.AveBtyOnKill.ToString().PadLeft(15)));
- q.Enqueue(msg.pm(requester, "Your Ave Bty on Death " + info.DeathAve.ToString().PadLeft(15)));
- q.Enqueue(msg.pm(requester, "Total Greens " + info.TotalGreens.ToString().PadLeft(15)));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment