Beispiel #1
0
    def __init__(self):
        from collections import deque

        glass.GlassContainer.__init__(self)
        self.setBackgroundColor(glass.Color(0, 0, 0, 128))
        self.setSizePct(1, 0.025)
        self.setPosition(0, 0)

        self.teamGold = glass.GlassLabel("_12345 ")
        self.teamGold.setForegroundColor(gold)
        self.add(self.teamGold)
        self.teamGold.setPositionPct(0, 0)
        self.teamGold.setSizePct(0.1, 1)

        self.goldIncome = glass.GlassLabel("_12345 ")
        self.goldIncome.setForegroundColor(gold)
        self.add(self.goldIncome)
        self.goldIncome.setPositionPct(0.09, 0)
        self.goldIncome.setSizePct(0.1, 1)

        self.stoneCounter = glass.GlassLabel("_12345__")
        self.stoneCounter.setForegroundColor(tangoRedLight)
        self.add(self.stoneCounter)
        self.stoneCounter.setPositionPct(0.15, 0)
        self.stoneCounter.setSizePct(0.1, 1)

        self.stoneIncome = glass.GlassLabel("_12345__")
        self.stoneIncome.setForegroundColor(tangoRedLight)
        self.add(self.stoneIncome)
        self.stoneIncome.setPositionPct(0.24, 0)
        self.stoneIncome.setSizePct(0.1, 1)

        self.res1Counter = glass.GlassLabel("_12345__")
        self.add(self.res1Counter)
        self.res1Counter.setPositionPct(0.76, 0)
        self.res1Counter.setSizePct(0.06, 1)

        self.res2Counter = glass.GlassLabel("_12345__")
        self.add(self.res2Counter)
        self.res2Counter.setPositionPct(0.82, 0)
        self.res2Counter.setSizePct(0.06, 1)

        self.res3Counter = glass.GlassLabel("_12345__")
        self.add(self.res3Counter)
        self.res3Counter.setPositionPct(0.88, 0)
        self.res3Counter.setSizePct(0.06, 1)

        self.workerCounter = glass.GlassLabel("_12345__")
        self.workerCounter.setForegroundColor(white)
        self.add(self.workerCounter)
        self.workerCounter.setPositionPct(0.95, 0)
        self.workerCounter.setSizePct(0.05, 1)

        self.lastTime = Host_Milliseconds()
        self.trackGold = deque()
        self.trackStone = deque()
        self.lastStone = 0
        self.lastGold = 0

        self.healthBackground = glass.GlassLabel(" ")
        self.add(self.healthBackground)
        self.healthBackground.setPositionPct(0.4, 0.05)
        self.healthBackground.setSizePct(0.2, 0.9)
        self.healthBackground.setBackgroundColor(tangoRedDark)
        self.healthBackground.setOpaque(True)

        self.healthForeground = glass.GlassLabel(" ")
        self.add(self.healthForeground)
        self.healthForeground.setPositionPct(0.4, 0.05)
        self.healthForeground.setSizePct(0.2, 0.9)
        self.healthForeground.setBackgroundColor(tangoBlue)
        self.healthForeground.setOpaque(True)

        self.cc = glass.GlassLabel("")
        self.add(self.cc)
        self.cc.setSizePct(0, 1)
        self.cc.setWidth(self.cc.getHeight())
        self.cc.setX(self.healthBackground.getX() - self.cc.getWidth())

        gblEventHandler.addGameListener(self)
Beispiel #2
0
def onShow():
	hud.chatBox.deactivate();
	hud.minimap.setMap(cvar_get("world_overhead"));
	hud.scoreboard.arrange();
	hud.scoreboard.update(); #remove the placeholders in scoreboard
	hud.crosshair.reset();
	hud.voteWindow.reset();
	hud.timer.setCaption("");
	
	hud.frame(); #remove any other placeholders

glass.GUI_CreateScreen('hud');

## ORDER/WAYPOINT ##
waypoint = glass.GlassLabel();
waypoint.setImage("null.s2g");
waypoint.setVisible(False);
waypoint.setSize(48,48);
glass.GUI_ScreenAddWidget("hud", waypoint);
waypointObject = None;

class WaypointHandler:
	def onEvent(self, e):
		if isinstance(e, WaypointEvent):
			if e.eventType == 'waypoint_complete' or e.eventType == 'waypoint_cancel' or e.eventType == 'waypoint_destroy':
				hud.waypoint.setVisible(False);
			else:
				hud.waypoint.setImage(CL_GetWaypointImage());
				hud.waypoint.setSize(48,48);
				hud.waypoint.setVisible(True);
Beispiel #3
0
    def __init__(self):
        glass.GlassWindow.__init__(self)

        global gblEventHandler
        gblEventHandler.addVoteListener(self)

        self.setOpaque(False)
        self.setSizePct(0.4, 0.16)
        self.setBackgroundColor(glass.Color(0, 0, 0, 100))
        self.setFrameSize(0)
        self.setTitleVisible(False)
        self.setTitleBarHeight(0)

        self.description = glass.GlassLabel("")
        self.add(self.description, 0, 0)
        self.description.setSizePct(0.5, 0.4)
        self.description.setPositionPct(0.05, 0)
        self.description.setForegroundColor(tangoYellow)

        self.commStats = glass.GlassLabel("")
        self.add(self.commStats)
        self.commStats.setSizePct(0.5, 0.6)
        self.commStats.setPositionPct(0.05, 0.4)
        self.commStats.setForegroundColor(tangoYellow)
        self.commStats.setAlignment(1)
        #center

        self.barBG = glass.GlassLabel("")
        self.add(self.barBG)
        self.barBG.setImage("/gui/standard/vote_barGrey.png")
        self.barBG.setSizePct(0.5, 0.2)
        self.barBG.setPositionPct(0.05, 0.6)
        self.barBG.setOpaque(True)

        self.barYes = glass.GlassLabel("")
        self.add(self.barYes)
        self.barYes.setImage("/gui/standard/vote_barGreen.png")
        self.barYes.setSizePct(0, 0.2)
        self.barYes.setPositionPct(0.05, 0.6)
        self.barYes.setOpaque(True)

        self.barNo = glass.GlassLabel("")
        self.add(self.barNo)
        self.barNo.setImage("/gui/standard/vote_barRed.png")
        self.barNo.setSizePct(0, 0.2)
        self.barNo.setPositionPct(0.05, 0.6)
        self.barNo.setOpaque(True)

        self.barDivider = glass.GlassLabel("")
        self.add(self.barDivider)
        self.barDivider.setSizePct(0, 0.2)
        self.barDivider.setWidth(1)
        self.barDivider.setPositionPct(0, 0.6)
        self.barDivider.setBackgroundColor(white)
        self.barDivider.setOpaque(True)

        self.labelYes = glass.GlassLabel("F1 for YES")
        self.add(self.labelYes)
        self.labelYes.setForegroundColor(tangoGreenLight)
        self.labelYes.setPositionPct(0, 0.8)
        self.labelYes.setAlignment(glass.Graphics.RIGHT)

        self.labelNo = glass.GlassLabel("F2 for NO")
        self.add(self.labelNo)
        self.labelNo.setPositionPct(0.7, 0.8)
        self.labelNo.setAlignment(glass.Graphics.RIGHT)
        self.labelNo.setForegroundColor(tangoRedLight)

        self.results = glass.GlassLabel("^5750^w/^6110")
        self.add(self.results)
        self.results.setSizePct(0.2, 0.2)
        self.results.setPositionPct(0.4, 0.8)
        """self.timer = glass.GlassTimer("");
		self.add ( self.timer );
		self.timer.setSizePct(0.1, 0.1);
		self.timer.setPositionPct(0.9, 0.65);
		"""
        self.timeLeft = glass.GlassLabel("")
        self.add(self.timeLeft)
        self.timeLeft.setSizePct(0.1, 0.1)
        self.timeLeft.setPositionPct(0.9, 0.65)
        self.timeLeft.setForegroundColor(tangoGrey1)

        self.anotherTeam = glass.GlassLabel("Another team is voting")
        self.add(self.anotherTeam)
        self.anotherTeam.setForegroundColor(tangoGrey1)
        self.anotherTeam.setSizePct(1, 0.2)
        self.anotherTeam.setPositionPct(0, 0.8)
        self.anotherTeam.setAlignment(1)
        #center

        self.miniMapImage = glass.GlassLabel("")
        self.add(self.miniMapImage)
        self.miniMapImage.setSize(64, 64)
        self.miniMapImage.setPositionPct(0.6, 0.1)
        self.miniMapImage.setVisible(False)

        self.status = self.INACTIVE
        self.activeseq = None
Beispiel #4
0
# (c) 2010 savagerebirth.com

from silverback import *;
import glass;

def frame():
	pass;

def onShow():
	pass;

glass.GUI_CreateScreen('guitest');

bg = glass.GlassLabel();
bg.setBackgroundColor(glass.Color(128,128,128));
bg.setOpaque(1);
bg.setSizePct(1,1);
glass.GUI_ScreenAddWidget("guitest", bg);

tomain = glass.GlassButton("Main Menu");
tomain.setPosition(0,screenHeight-tomain.getHeight());
tomain.setClickAction("GUI_ShowScreen('mainmenu')");
glass.GUI_ScreenAddWidget("guitest", tomain);

execwindow.newExecWindow("guitest");

# ##############################
# Start testing stuff from here!

testAlpha = glass.GlassContainer();
testAlpha.setAlpha(20);
Beispiel #5
0
def onShow():
    loading.mapback.setImage(cvar_get("world_overhead"))
    loading.mapback.setPositionPct(.25, .16667)
    loading.mapback.setSizePct(.5, .6667)
    loading.loadingbk.setPositionPct(.25, .16667)
    loading.loadingLabel.setCaption("Loading " + cvar_get("world_name") +
                                    "...")
    loading.loadingLabel.setPositionPct(.4, .69)
    loading.loadingbk.setSizePct(.5, .6667)
    loading.loadingProgress.setPositionPct(.3, .72)


glass.GUI_CreateScreen('loading')

loadingbk = glass.GlassLabel()
loadingbk.setImage('/gui/standard/black.s2g')
glass.GUI_ScreenAddWidget('loading', loadingbk)
loadingbk.setSizePct(1, 1)

mapback = glass.GlassLabel()
mapback.setId('mapback')
glass.GUI_ScreenAddWidget('loading', mapback)

loadingbk = glass.GlassLabel()
loadingbk.setImage('/textures/loading/nfm_mapoverlay.s2g')
#uncomment this when a solution is found to resolution not being set when
#these scripts are run
#loadingbk.setPosition(int(Vid_GetScreenW()/2.0-256),int(Vid_GetScreenH()/2.0-256))
glass.GUI_ScreenAddWidget('loading', loadingbk)
    def rebuild(self):
        self.table.clear()

        #1. create lists of object types
        # each list represents a column
        # use None to represent a blank space
        items = self.teamObj.getResearchableItems()
        weapons = self.teamObj.getResearchableWeapons()
        units = self.teamObj.getResearchableUnits()

        #nomad/scav can't be researched
        units.insert(0, None)

        medic = units.pop(3)
        #medic gets its own row
        mt = [
            go for go in weapons[0]
            if go.getValue("requirement1") == medic.getName()
        ]

        #hunting bow needs a place holder
        if self.teamObj.getRace() == "human":
            weapons[0].insert(0, None)

        medictech1 = mt[0]
        medictech2 = None
        #medictech2 = mt[1];

        seige1 = units.pop(3)
        #seige gets its own row
        units.append(None)
        seige2 = units.pop(3)
        units.append(None)

        medicrow = [None, medic, None, medictech1, medictech2]
        seigerow = [None, seige1, seige2, None, None]

        rows = []

        #2.add the header row to the table
        if self.teamObj.getRace() == "human":
            self.table.addRow(*self.header_human)
        elif self.teamObj.getRace() == "beast":
            self.table.addRow(*self.header_beast)

        for i in range(3):
            row = [
                weapons[0][i], weapons[1][i], weapons[2][i], weapons[3][i],
                units[i], seigerow[i], medicrow[i]
            ]
            rows.append(row)
        for i in range(2):
            row = [
                items[0][i], items[1][i], items[2][i], items[3][i],
                units[i + 3], seigerow[i + 3], medicrow[i + 3]
            ]
            rows.append(row)

        self.table.rows[0].setBackgroundColor(tangoGrey2)

        #3. fill in the rest of the table

        for i, row in enumerate(rows):
            for j, obj in enumerate(row):
                #i. convert the object types to widgets
                if obj == None:
                    widget = glass.GlassLabel("")
                else:
                    name = obj.getName()
                    widget = glass.ImageButton(name,
                                               obj.getValue("icon") + ".s2g")
                    widget.setClickAction("commhud.ResearchSimple('" + name +
                                          "');")
                widget.setSize(self.ICON_SIZE, self.ICON_SIZE)
                row[j] = widget

            #ii. add in the level labels
            row = [self.levels[i]] + row
            #iii. then add the rows
            self.table.addRow(*row)

        self.table.adjustSize()
        self.table.adjustJustification()
        self.setSize(self.table.getWidth() + self.PADDING * 3,
                     self.table.getHeight() + 2 + self.PADDING * 3)
        self.setX(commhud.quickbar.getX() + commhud.research.getX() +
                  (commhud.research.getWidth() - self.getWidth()) // 2)
        self.setY(commhud.quickbar.getY() + commhud.research.getY() -
                  self.getHeight() - self.PADDING)
Beispiel #7
0
#starting from the top-centre (12 o'clock) of the screen and proceeding anti clockwise

## RESOURCES/INFO PANEL ##

resourcesPanel = ResourcePanel();
glass.GUI_ScreenAddWidget("commhud", resourcesPanel);

## MINIMAP ##
#Beard: skope suggests moving this to the bottom
minimap = glass.GlassMiniMap();
minimap.setPositionPct(0.01875, 0.025);
minimap.setSize(int(0.208*screenHeight),int(0.208*screenHeight));
minimap.addMouseListener(MapClickHandler());

## TIMER ##
timer = glass.GlassLabel("_AB:CD ");
timer.setFont(glass.GUI_GetFont(20));
timer.setPositionPct(0.01875, 0.025+0.208);
glass.GUI_ScreenAddWidget("commhud", timer);

## VOTES ##

voteWindow = VoteInfoBox();
glass.GUI_ScreenAddWidget("commhud", voteWindow);
voteWindow.setPosition( minimap.getWidth() + minimap.getX() + 10, -voteWindow.getHeight());

## CHAT BOX ##

chatBox = HUDChatBox();
chatBox.setPositionPct(0,0.625);
chatBox.setX(10);
Beispiel #8
0
def rebuildAwards(data):
	"""data = {
		"^gBest Commander^w (%.1f rating)": "0;0;0",
		"^gSadist^w (%d Kills)": "0;0;0",
		"^gUnbreakable^w": "0;0;0",
		"^gMost Violent^w (%d Player Damage)": "0;0;0",
		"^Minute Man^w (%.1f Kills/min)": "0;0;0",
		"^gSurvivor^w (%d Kills in a row)": "0;0;0",
		"^gHero^w (Last Hit)": "0;0;0",
		"^gHomewrecker^w (%d Building Damage)": "0;0;0",
		"^gOutpost Basher^w (%d Outpost Damage)": "0;0;0",
		"^gDownsizer^w (%d Worker Kills)": "0;0;0",
		"^gSiege Hater^w (%d Killed)": "0;0;0",
		"^gCapitalist^w (Surplus of %d Gold)": "0;0;0",
		"^gEntrepreneur^w (Earned %d Gold)": "0;0;0",
		"^gBest Flag Thief^w (%d Flags)": "0;0;0",
		"^gBruce Lee^w (%d Blocks)": "0;0;0",
		"^gMartyr^w (%d Sacrifices)": "0;0;0",
		"^gBest Healer^w (%d Aggregated XP)": "0;0;0",
		"^gBest Miner^w (%d Resources)": "0;0;0",
		"^gBob The Builder^w (%d HP)": "0;0;0",
		"^gVeteran^w (Most XP)": "0;0;0",
		"^gMartial Artist^w (%d Melee Kills)": "0;0;0",
		"^gCarnivore^w (%d pints of blood)": "0;0;0",
		"^gTeacher's Pet^w (%d Orders Followed)": "0;0;0",
		"^gFlurry Bunny!^w (%d Jumps)": "0;0;0",
		"^900Buffy McBuffin^w (%d Self-Buffs)": "0;0;0",
		"^900Big Spender^w (Spent %d Gold)": "0;0;0",
		"^Communist^w (Used %d Team Gold)": "0;0;0",
		"^yMMORPG Fan^w (%d NPC Kills)": "0;0;0",
		"^900Reaper's Best Buddy^w": "0;0;0",
		"^900Task Master^w (%d Orders Given)": "0;0;0",
	};"""
	
	endgame.awards.clear();
	
	COLS = 2;
	PADDING = 2;
	y = PADDING;
	colors = [tangoGrey3, tangoGrey4];
	
	if len(data) == 0:
		return; #no awards!
	
	for i, item in enumerate(data.items()):
		award, idString = item;

		recipients = []

		for id_ in idString.split(";"):
			try:
				recipients.append(savage.Player(int(id_)).getFormattedName())
			except:
				pass
		
		index = award.find(" (");
		if index == -1:
                        name = award
		else:
		#	#remove color codes                it's less hackish if you just edit awards.cfg ^^
		#	if '0' <= award[1] <= '9':
		#		name = award[4:index];
		#	else:
		#		name = award[2:index];
                        name = award[0:index]
		icon = "/textures/awards/" + name.replace(' ','_').lower() + ".s2g";
		
		award_icon = glass.GlassLabel("");
		award_icon.setImage(icon);
		
		award_name = glass.GlassLabel(award);
		award_name.setFont(fontSizeSmall);
		awardee = recipients[0] if len(recipients) > 0 else "";
		award_owner = glass.GlassLabel(awardee);
		bg = glass.GlassLabel("");
		bg.setOpaque(True);
		bg.setBackgroundColor(colors[(i//COLS)%len(colors)]);
		
		#1. position the background
		bg.setX( PADDING + (PADDING + endgame.awards.getWidth()//COLS)*(i%COLS) );
		bg.setWidth( (endgame.awards.getWidth() - PADDING*(COLS+1) )//COLS );
		bg.setY( y );
		
		#2. position the labels - these will determine the height of the box
		award_name.setY(bg.getY() + PADDING);
		award_owner.setY(award_name.getY() + award_name.getHeight() + PADDING);
		bg.setHeight(3*PADDING + award_name.getHeight() + award_owner.getHeight());
		
		tools.widgetInfoDump(award_name,"NAME")
		tools.widgetInfoDump(award_owner,"OWNER")
		
		#3. the icon is square and fills the bg's height
		h = bg.getHeight() - 2*PADDING;
		award_icon.setSize(h, h);
		award_icon.setPosition(bg.getX() + PADDING, bg.getY() + PADDING);
		
		#4. offset the labels and set their width
		award_name.setX(award_icon.getX() + award_icon.getWidth() + PADDING);
		award_owner.setX(award_name.getX());
		award_name.setWidth(bg.getWidth() - award_icon.getWidth() -3*PADDING);
		award_owner.setWidth(award_name.getWidth());
		
		#5. add the widgets to the container
		endgame.awards.add(bg);
		endgame.awards.add(award_icon);
		endgame.awards.add(award_name);
		endgame.awards.add(award_owner);
		
		#6. update y if we need a new row
		if i % COLS == COLS - 1:
			y += bg.getHeight() + PADDING;
		
		#7. if we have runners-up, add them to the tooltip info
		if len(recipients) > 1:
			tooltip = "Runners Up:";
			for i, p in enumerate(recipients[1:]):
				tooltip += "\n" + str(i+2) + ". " + p;
			bg.setTooltip(tooltip);
			award_icon.setTooltip(tooltip);
			award_name.setTooltip(tooltip);
			award_owner.setTooltip(tooltip);
	
	if i % COLS != COLS - 1:
		y += bg.getHeight(); #in case we didn't end with a full row
	
	endgame.awards.setHeight(y);

	tools.widgetInfoDump(endgame.awards,"AWARDS")
Beispiel #9
0
glass.GUI_CreateScreen('modeltest')


class ModelChangeHandler:
    def onValueChanged(self, e):
        modeltest.modelviewer.setModel(
            modeltest.modeldropmenu.getSelectedValue())


class AnimChangeHandler:
    def onValueChanged(self, e):
        modeltest.modelviewer.setAnimation(
            modeltest.animdropmenu.getSelectedValue())


bg = glass.GlassLabel()
bg.setBackgroundColor(glass.Color(0, 0, 0, 255))
bg.setSizePct(1, 1)
bg.setPosition(0, 0)
glass.GUI_ScreenAddWidget("modeltest", bg)

modelviewer = glass.GlassViewer()
modelviewer.setModel("/models/null.model")
modelviewer.setCameraPosition(0, 10, 10)
modelviewer.setCameraTarget(0, 0, 10)
modelviewer.setPosition(0, 0)
modelviewer.setSizePct(1, 1)
glass.GUI_ScreenAddWidget("modeltest", modelviewer)

modeldropmenu = glass.GlassDropMenu()
modeldropmenu.setPositionPct(0.2, 0)
Beispiel #10
0
	gblPresetManager.execute();

	loadout.inventoryContainer.setX( int( 0.69*loadout.main.getWidth() - loadout.inventoryContainer.getWidth()//2 ));
	loadout.inventoryContainer.setY( gblPresetManager.getY() - 10 - loadout.inventoryContainer.getHeight());
	loadout.mainViewer.setX( int( loadout.main.getX() + 0.69*loadout.main.getWidth() - loadout.mainViewer.getWidth()/2) );
	loadout.mainViewer.setY( loadout.main.getY() + loadout.inventoryContainer.getY() - 10 - loadout.mainViewer.getHeight() );
	
	loadout.map_window.setAlpha(0);
	loadout.map_window.setVisible(False);

techColumns = [];
lastTeamNum = -1;

glass.GUI_CreateScreen("loadout");

goldLabel = glass.GlassLabel("^icon ../../gui/standard/icons/gold/gold_icon^" + "_____");
goldLabel.setFont(fontSizeLarge);
goldLabel.setForegroundColor(gold);
goldLabel.setPositionPct(0.4,0.05);
goldLabel.setSizePct(0.2,0.1);
goldLabel.setAlignment(glass.Graphics.CENTER);
glass.GUI_ScreenAddWidget("loadout",goldLabel);

main = glass.GlassWindow("selectwindow")
main.setSizePct(.8, .6)
main.setPositionPct(0.1,0.28)
main.setBackgroundColor(glass.Color(0,0,0,128))
main.setTitleVisible(0)
main.setTitleBarHeight(0);
main.setMovable(0);
main.setEnabled(0);
Beispiel #11
0
	endgame.updatePersonal();
	endgame.accuracy_window.setVisible(False);
	endgame.accuracy_window.update();
	endgame.accuracy_window.centerWindow();
	
	endgame.updateGameInfo();
	endgame.updateOutcome();
	endgame.rebuildAwards(savage.getGameStats());
	
	#gblEventHandler.addHttpListener(endgame.statsHandler);
	
	#endgame.statsHandler.httpHandle = HTTP_Get("http://savagerebirth.com/api/index.php/map/"+cvar_get("svr_world"));

glass.GUI_CreateScreen('endgame');

bg = glass.GlassLabel();
bg.setBackgroundColor(glass.Color(0,0,0,64));
bg.setSizePct(1,1);
glass.GUI_ScreenAddWidget("endgame",bg);

PADDING = int(screenHeight*0.01);

vbreak = 0.2;   vbreakpx = int(vbreak * screenHeight);
hbreak1 = 0.25; hbreak1px = int(hbreak1 * screenWidth);
hbreak2 = 0.75; hbreak2px = int(hbreak2 * screenWidth);

#1. Personal Information
fave_unit = glass.GlassViewer();
fave_unit.setBackgroundColor(transparency);
fave_unit.setEnabled(False);
fave_unit.setPosition(PADDING, PADDING);
Beispiel #12
0
# Copyright (c) 2011 savagerebirth.com 
# this file creates the lobby

from silverback import *;
import glass;
import savage;

def frame():
	lobby.update();

def onShow():
	lobby.arrange();

glass.GUI_CreateScreen('lobby');

bg = glass.GlassLabel(" ");
bg.setBackgroundColor(black);
bg.setOpaque(1);
bg.setSizePct(1,1);
bg.setPositionPct(0,0);
glass.GUI_ScreenAddWidget("lobby", bg);

boxWidth = 0.2;
boxHeight = 0.5;
buttonHeight = boxHeight / 10;
totalPadding = 0.05;
paddingPerBox = totalPadding / 8;
centralPadding = 0.15;

interface = glass.GlassContainer();
interface.setBackgroundColor( tangoGrey2 );
Beispiel #13
0
    def build(self):
        self.clearList()

        self.team = savage.getLocalTeam()
        self.players = []

        self.playerDict = dict()
        i = 0

        for player in self.team.getPlayers():

            if player.isCommander():
                continue

            self.players.append(player)
            i += 1

            unit = glass.GlassLabel()
            unit.setImage(player.getIcon())
            unit.setSize(24, 24)

            name = DefaultLabel(player.getFormattedName())
            #name.setForegroundColor( white );
            #name.setAlignment(2);

            level = DefaultLabel(str(player.getLevel()))
            level.setForegroundColor(tangoBlue)
            #level.setAlignment(2);
            #level.setFont(fontSizeLarge);

            kda = DefaultLabel("^g" + str(player.getKills()) + "^w/^r" +
                               str(player.getDeaths()) + "^w/^l" +
                               str(player.getAssists()))
            #kda.setAlignment(2);
            #kda.setFont(fontSizeLarge);
            #kda.adjustSize();

            request = glass.ImageButton()
            #request.setSize(24,24);
            request.setImage("/gui/main/images/yestr.s2g")
            request.setSize(24, 24)

            officer = glass.ImageButton()
            #officer.setSize(24,24);
            if player.isOfficer():
                officer.setImage("gui/game/images/demote_" +
                                 self.team.getRace() + ".s2g")
                officer.setClickAction("CL_RequestDemote(" +
                                       str(player.objectId) + ")")
            else:
                officer.setImage("gui/game/images/promote_" +
                                 self.team.getRace() + ".s2g")
                officer.setClickAction("CL_RequestPromote(" +
                                       str(player.objectId) + ")")

            officer.setSize(24, 24)

            goldLabel = DefaultLabel(str(player.getGold()))
            goldLabel.setForegroundColor(themeGold)
            #goldLabel.setAlignment(1);

            gold = glass.ImageButton()
            #gold.setSize(24,24);
            gold.setImage("/gui/standard/icons/gold/nl_coins14.s2g")
            gold.setClickAction("CL_RequestGiveGold(" + str(player.objectId) +
                                ", 100)")
            gold.setSize(24, 24)

            row = self.list.nextRow(unit, name, level, kda, request, officer,
                                    goldLabel, gold)

            self.playerDict[
                player.
                objectId] = row  #Store the rows and players in a dict to trace back the widgets

        #self.list.adjustSize();
        #self.setSize(self.list.getWidth() +10, 250);
        #self.list.adjustJustification();
        #self.setSize(self.list.getWidth() +10, 250);
        #self.scroll.setSize(self.getWidth(), self.getHeight());

        self.list.useColumnDividers()
        self.headingRow.setAlternate(False)
        self.list.adjustWidthTo(self.scroll.getWidth() - 10)
Beispiel #14
0
    def rebuildResearchable(self, team):
        self.table.clear()
        self.teamObj = team
        allItems = self.teamObj.getResearchableItems()
        allWeapons = self.teamObj.getResearchableWeapons()
        allUnits = self.teamObj.getResearchableUnits()
        medicrow = [None, None, None, None, None]
        siegerow = [None, None, None, None, None]

        if self.teamObj.getRace() == "human":
            self.headers = self.header_human
            huntingBow = savage.getObjectType("human_bow")
            allWeapons[0].insert(0, huntingBow)
            nomad = savage.getObjectType("human_nomad")
            allUnits.insert(0, nomad)
        elif self.teamObj.getRace() == "beast":
            self.headers = self.header_beast
            scav = savage.getObjectType("beast_scavenger")
            allUnits.insert(0, scav)
        else:
            return

        try:
            medic = allUnits.pop(3)
            mt = [
                go for go in allWeapons[0]
                if go.getValue("requirement1") == medic.getName()
            ]
            medictech1 = mt[0]
            medictech2 = savage.getObjectType(self.teamObj.getRace() +
                                              "_revive")
            ## TODO: fix shaman shield thingy
            #medictech2 = mt[1];
            medicrow = [None, medic, None, medictech1, medictech2]
        except:
            pass

        try:
            siege1 = allUnits.pop(3)
            allUnits.append(None)
            siege2 = allUnits.pop(3)
            allUnits.append(None)

            siegerow = [None, siege1, siege2, None, None]
        except:
            pass

        self.rows = []
        self.table.addRow(self.headers[0], *self.levels)

        for i in range(4):
            row = []
            try:
                for j in range(3):
                    row.append(allWeapons[i][j])
                for k in range(2):
                    row.append(allItems[i][k])
            except IndexError:
                pass
            self.rows.append(row)
        row = []
        for i in range(3):
            row.append(allUnits[i])
        self.rows.append(row)
        self.rows.append(siegerow)
        self.rows.append(medicrow)

        for i, row in enumerate(self.rows):
            for j, obj in enumerate(row):
                widget = glass.GlassLabel("")
                if obj != None:
                    widget.setImage(obj.getValue("icon") + ".s2g")
                widget.setSize(self.ICON_SIZE, self.ICON_SIZE)
                row[j] = widget
                self.widgets.append([obj, widget])
            row = [self.headers[i + 1]] + row
            self.table.addRow(*row)

        self.table.adjustSize()
        self.table.adjustJustification()
        self.setSize(self.table.getWidth() + self.PADDING * 3,
                     self.table.getHeight() + 2 + self.PADDING * 3)
 def makeHeaderWidget(x):
     w = glass.GlassLabel("")
     if x != None:
         w.setImage(x)
     w.setSize(self.HEADER_ICON_SIZE, self.HEADER_ICON_SIZE)
     return w
Beispiel #16
0
team1 = savage.Team(1)
team2 = savage.Team(2)

#starting from the gold to the right of the minimap and proceeding anti clockwise

## MAP and surrounding things ##

minimap = glass.GlassMiniMap()
minimap.setPositionPct(0, 0.025)
minimap.setX(10)
minimap.setSize(int(0.208 * screenHeight), int(0.208 * screenHeight))
#same number of pixels so it's square
#well assuming the pixel aspect ratio is 1:1
glass.GUI_ScreenAddWidget("spechud", minimap)

player_money = glass.GlassLabel("_ABCDE ")
player_money.setForegroundColor(gold)
player_money.setPosition(int(minimap.getWidth() + 10 + screenWidth * 0.01875),
                         int(screenHeight * 0.025))
glass.GUI_ScreenAddWidget("spechud", player_money)

timer = glass.GlassLabel("_AB:CD ")
timer.setFont(glass.GUI_GetFont(20))
timer.setPosition(10,
                  minimap.getHeight() + 20)
glass.GUI_ScreenAddWidget("spechud", timer)

## TEAM STATUS ##

teamStatus = ResourcePanel()
teamStatus.setVisible(False)
 def makeLevelWidget(x):
     w = glass.GlassLabel(str(x))
     w.setSize(self.ICON_SIZE, self.ICON_SIZE)
     w.setFont(fontSizeLarge)
     w.setAlignment(glass.Graphics.CENTER)
     return w
Beispiel #18
0
	def create(self):
		
		self.setBackgroundColor(glass.Color(22, 13, 10));
		
		# Top area
		top = DefaultContainer();
		top.setSize(self.getWidth(), 35);
		top.setBackgroundColor(glass.Color(85, 21, 11));
		top.setOpaque(True);
		self.add(top);
		
		title = DefaultImage();
		title.setImage("txt_hostgame.png");
		top.add(title, "center", "center");
		
		go = DefaultImageButton();
		go.setImage("btn_host.png");
		go.setCaption("Host");
		go.addActionListener(self)
		top.add(go, 10, "center", "right"); 

		# return to game stuff:

		self.reconnectBar = DefaultContainer();
		self.reconnectBar.setSize(self.getWidth(), 50);
		self.reconnectBar.setVisible(False);
		self.reconnectBar.setBackgroundColor(glass.Color(85, 21, 11));
		self.reconnectBar.setOpaque(True);
		self.add(self.reconnectBar, 0, 35);
		
		gameProgress = DefaultLabel("GAME IN PROGRESS");
		self.reconnectBar.add(gameProgress, "center");
		
		hr = DefaultImage();
		hr.setImage("divider.png");
		self.reconnectBar.add(hr, "center", gameProgress.getHeight() + 3);

		disconnectButton = DefaultButton("LEAVE");
		disconnectButton.setClickAction("""disconnect();mainmenu.modules['menu'].sectionStack['serverlist'].onShow();""");
		self.reconnectBar.add(disconnectButton, 10, 10);

		connectedMessage = DefaultLabel("You are currently connected to a server. Do you want to return?");
		connectedMessage.setFont(fontSizeSmall);
		self.reconnectBar.add(connectedMessage, "center", 27);
		
		returnButton = DefaultButton("RETURN");
		returnButton.setClickAction("spechud.setMode('lobby');GUI_ShowScreen('spechud')");
		self.reconnectBar.add(returnButton, 10, 10, "right");

		self.content = DefaultContainer();
		self.add(self.content, 0, 35);
		self.content.setSize(self.getWidth(), self.getHeight() - 85);

		self.columnWidth = (self.getWidth() - 40) // 3;

		# Left container:

		self.settingsContainer = DefaultContainer();
		self.content.add(self.settingsContainer, 10, 0);
		self.settingsContainer.setSize(self.columnWidth, self.content.getHeight());
		#self.settingsContainer.setBackgroundColor(white);

		settingsTitle = DefaultLabel("Game Settings");
		self.settingsContainer.add(settingsTitle, "center", 10);

		typeLabel = DefaultLabel("Gametype:");
		self.settingsContainer.add(typeLabel, 0, settingsTitle.getHeight() + 30 );

		cvar_register("sv_gametype", 0);
		self.gametype = glass.GlassDropMenu();
		self.gametype.linkCvar("sv_gametype");
		self.gametype.addOption("RTSS",str(GAMETYPE_RTSS));
		self.gametype.addOption("Duel",str(GAMETYPE_DUEL));	
		self.gametype.setSelectedValue("0");
		self.settingsContainer.add(self.gametype, typeLabel.getWidth() + 20, typeLabel.getY());
		self.gametype.setWidth(60);

		raceLabel = DefaultLabel("Races:");
		self.settingsContainer.add(raceLabel, 0, self.gametype.getY() + 30 );

		cvar_register("sv_team1race", 0, "human");
		cvar_register("sv_team2race", 0, "beast");
		self.race = glass.GlassDropMenu();
		self.race.linkCvar("sv_team1race");
		self.race.addOption("HvsB","human");
		self.race.addOption("HvsH","human");
		self.race.addOption("BvsB","beast");
		self.race.setSelectedValue("HvsB");
		self.settingsContainer.add(self.race, self.gametype.getX(), raceLabel.getY());
		self.race.setWidth(60);

		div1 = DefaultDivider();
		div1.setWidth(self.settingsContainer.getWidth());
		self.settingsContainer.add(div1, 0, self.race.getY() + 40);

		cvar_register("sv_xp_mult", 0, "1.0");
		xpSlider = DefaultSlider();
		xpSlider.linkCvar("sv_xp_mult");
		xpSlider.setScaleEnd(10.0);
		xpSlider.setScaleStart(0.0);
		xpSlider.setWidth(self.settingsContainer.getWidth() - 15);
		self.settingsContainer.add(xpSlider, 0, div1.getY() + 25 );

		xpLabel = DefaultLabel("XP multiplier");
		self.settingsContainer.add(xpLabel, 0, xpSlider.getY() + 13 );	

		div2 = DefaultDivider();
		div2.setWidth(self.settingsContainer.getWidth());
		self.settingsContainer.add(div2, 0, xpLabel.getY() + 35);	

		cvar_register("sv_gold_mult", 0, "1.0");
		goldSlider = DefaultSlider();
		goldSlider.linkCvar("sv_gold_mult");
		goldSlider.setScaleEnd(10.0);
		goldSlider.setScaleStart(0.0);
		goldSlider.setWidth(self.settingsContainer.getWidth() - 15);
		self.settingsContainer.add(goldSlider, 0, div2.getY() + 25 );

		goldLabel = DefaultLabel("Gold multiplier");
		self.settingsContainer.add(goldLabel, 0, goldSlider.getY() + 13 );


		# mid container:

		self.listContainer = DefaultContainer();
		self.content.add(self.listContainer, self.columnWidth + 20, 0);
		self.listContainer.setSize(self.columnWidth, self.content.getHeight());
		#self.listContainer.setBackgroundColor(white);

		mapsTitle = DefaultLabel("Local Map List");
		self.listContainer.add(mapsTitle, "center", 10);

		self.mapList = glass.GlassListBox();	
		self.mapList.addSelectionListener(self);
		self.mapList.setBackgroundColor(transparency);
		self.mapList.setForegroundColor(glass.Color(211, 201, 168));
		#self.mapList.setSelectionColor()

		self.mapScroll = glass.GlassScrollArea(self.mapList);			
		self.mapScroll.setSize(self.listContainer.getWidth(), self.listContainer.getHeight() - 60);
		self.listContainer.add(self.mapScroll, 0, mapsTitle.getHeight() + 30);

		# right container:

		self.mapContainer = DefaultContainer();
		self.content.add(self.mapContainer, self.columnWidth * 2 + 30, 0);
		self.mapContainer.setSize(self.columnWidth, self.content.getHeight());
		#self.mapContainer.setBackgroundColor(white);

		self.overhead = glass.GlassLabel();
		#self.overhead.setImage("");
		self.overhead.setSize(self.mapContainer.getWidth(), self.mapContainer.getWidth());
		self.mapContainer.add(self.overhead, "center", self.mapScroll.getY());

		# todo: map stats and information

		comingSoon = DefaultLabel("Map stats and information \ncoming soon!");
		self.mapContainer.add(comingSoon, 0, self.overhead.getHeight() + 70);

		self.getLocalMaps();
Beispiel #19
0
	def addRow(self, *labels):
		labels = [glass.GlassLabel(s) for s in labels];
		for l in labels:
			l.setFont(fontSizeSmall);
		self.table.addRow(*labels);
Beispiel #20
0
        self.list = File_ListFiles("/demos/", "*.demo", 0)
        self.done = False

    def run(self):
        for demo in self.list:
            demos.list.addRow(demo)
            #TODO: maybe add the Demo_GetInfo here

        demos.list.adjustWidthTo(demos.listWidth)
        self.done = True

    def isDone(self):
        return self.done


bg = glass.GlassLabel()
bg.setOpaque(1)
bg.setBackgroundColor(black)
bg.setSize(screenWidth, screenHeight)
bg.setPosition(0, 0)
glass.GUI_ScreenAddWidget("demos", bg)

scroll = glass.GlassScrollArea()
scroll.setSizePct(xoffset - 2 * padding, 1.0 - 2 * padding)
scroll.setPositionPct(padding, padding)
scroll.setVerticalScrollPolicy(scroll.SHOW_ALWAYS)
glass.GUI_ScreenAddWidget("demos", scroll)

list = GlassListPlus()
list.autoAdjust = False
listWidth = scroll.getWidth() - scroll.getScrollbarWidth()