001 // edu.isi.gamebots.clients.GamebotsConstants 002 // Copyright 2000, University of Southern California, 003 // Information Science Institute 004 // 005 // Personal and Educational use is hereby granted. 006 // Permission required for commercial use and redistribution. 007 008 009 package edu.isi.gamebots.client; 010 011 import java.lang.*; 012 import java.awt.Color; 013 014 015 /** 016 * This interface defines several constants often used by 017 * {@link GamebotsClient}s and {@link Bot}s. 018 * 019 * @author <a href="mailto:amarshal#gamebots@isi.edu">Andrew n marshall</a> 020 */ 021 public interface GamebotsConstants { 022 // Public Static Data 023 /////////////////////////////////////////////////////////////////////////// 024 public final static int DEFAULT_BOT_PORT = 3000; 025 public final static int DEFAULT_VIZ_PORT = 3001; 026 027 public final static int NODE_DOMINATION = 1; //[srs] 028 public final static int NODE_NAVIGATION = 2; //[srs] 029 public final static int NODE_MOVER = 3; //[srs] 030 public final static int NODE_INVENTORY = 4; //[srs] 031 032 033 // Generics 034 public final static String TRUE = "True"; 035 public final static String FALSE = "False"; 036 037 public final static String LOCATION = "Location"; // 3D World coordinates 038 public final static String ROTATION = "Rotation"; // A pitch,yaw,roll vector 039 public final static String VELOCITY = "Velocity"; // 3D World coordinates 040 041 // Asynchrous from server... 042 public final static String INFO = "NFO"; // Server info/comment 043 public final static String SELF = "SLF"; // Info about self 044 public final static String SEE = "SEE"; // See another player 045 public final static String WALL = "WAL"; // Hit a wall 046 public final static String BUMP = "BMP"; // Bumped another player 047 public final static String DAMAGE = "DAM"; // Bumped another player 048 public final static String DIE = "DIE"; // Self Death Notification 049 public final static String KILL = "KIL"; // Player Death Notification 050 public final static String FINISHED = "Fin"; // End of Game 051 public final static String PONG = "Pong"; // Ping response 052 053 //[srs]: 054 public final static String ITEM = "AIN"; //picked up item 055 public final static String GAMESTATE = "GAM"; //game status message 056 public final static String DOMPOINTS = "DomPoints"; 057 public final static String PATH = "PTH"; 058 public final static String GETPATH = "GetPath"; 059 060 // From server in the vision update... 061 public final static String BEG = "BEG"; // Begin vision update 062 public final static String NAV = "NAV"; // Navigation point 063 public final static String DOM = "DOM"; //Domination point [srs] 064 public final static String MOV = "MOV"; // world mobile [srs] 065 public final static String PLAYER = "PLR"; // Other Player 066 public final static String INV = "INV"; // Inventory item 067 public final static String END = "END"; // End vision update 068 069 070 // Client Message Types 071 public final static String INIT = "Init"; // Enter Game 072 public final static String RUNTO = "RunTo"; 073 public final static String TURNTO = "TurnTo"; 074 public final static String PING = "Ping"; 075 076 // Actor properties (for NAV, PLAYER, SELF, INV, ...) 077 public final static String ACTOR_ID = "Id"; // Unique Actor identifier 078 public final static String ACTOR_REACHABLE = "Reachable"; // Boolean, is actor reachable from current location? 079 public final static String ACTOR_CLASS = "Class"; // Class name 080 //[srs] 081 public final static String ITEM_ID = "Id"; //weapon/item identifier 082 public final static String OWNER = "Controller"; //dom point owner 083 public final static String WEAPON_1 = "Bubble"; 084 public final static String WEAPON_2 = "Goo"; 085 086 // Player properties (for SELF, PLAYER, ane SEE) 087 public final static String PLAYER_TEAM = "Team"; // Unique Actor identifier 088 public final static String PLAYER_NAME = "Name"; 089 public final static String PLAYER_WEAPON = "Weapon"; 090 public final static String PLAYER_HEALTH = "Health"; 091 public final static String PLAYER_ARMOR = "Armor"; 092 public final static String PLAYER_AMMO = "CurrentAmmo"; 093 094 // Death properties (for KILL and DIE) 095 public final static String DEATH_KILLER = "Killer"; // Who did the killing 096 public final static String DEATH_DAMAGE_TYPE = "DamageType"; // How 097 098 // Client Message Parameters 099 public final static String ARG_TARGET = "Target"; 100 101 //[srs] Client Commands 102 public final static String STOP_SHOOT = "StopShoot"; 103 public final static String SHOOT = "Shoot"; 104 105 // Team IDs 106 public final static int TEAM_ANY = -1; //Only used by bot initialization 107 public final static int TEAM_NONE = 255; //[srs] 108 public final static int TEAM_RED = 0; 109 public final static int TEAM_BLUE = 1; 110 public final static int TEAM_GREEN = 2; 111 public final static int TEAM_GOLD = 3; 112 113 // Game mechanics constants. No gaurantee these are correct. 114 public final static double PLAYER_RADIUS = 17.0d; 115 116 // Items below added by Ryan Rozich - Texas A&M University for completeness 117 // Command Constant 118 public final static String SETWALK = "SETWALK"; 119 public final static String STOP = "STOP"; 120 public final static String JUMP = "JUMP"; 121 public final static String STRAFE = "STRAFE"; 122 public final static String ROTATE = "ROTATE"; 123 public final static String CHANGEWEAPON = "CHANGEWEAPON"; 124 public final static String CHECKREACH = "CHECKREACH"; 125 public final static String MESSAGE = "MESSAGE"; 126 127 // Client Message Parameters 128 public final static String ARG_WALK = "Walk"; 129 public final static String ARG_AMOUNT = "Amount"; 130 public final static String ARG_ALT = "Alt"; 131 public final static String ARG_TEXT = "Text"; 132 public final static String ARG_GLOBAL = "Global"; 133 134 135 // Inner Classes 136 ////////////////////////////////////////////////////////////////////////// 137 /** 138 * The following is a means for constants (liek Team IDs) to be mapped to 139 * useful objects. 140 */ 141 public static abstract class TeamColorMap { 142 public static String teamToName( int id ) { 143 switch( id ) { 144 case TEAM_ANY: 145 return "Any"; 146 case TEAM_NONE: 147 return "None"; 148 case TEAM_RED: 149 return "Red"; 150 case TEAM_BLUE: 151 return "Blue"; 152 case TEAM_GREEN: 153 return "Green"; 154 case TEAM_GOLD: 155 return "Gold"; 156 default: 157 return null; 158 } 159 } 160 161 public static Color teamToColor( int id ) { 162 switch( id ) { 163 case TEAM_RED: 164 return Color.red; 165 case TEAM_BLUE: 166 return Color.blue; 167 case TEAM_GREEN: 168 return Color.green; 169 case TEAM_GOLD: 170 return Color.yellow.darker(); 171 default: 172 return null; 173 } 174 } 175 } 176 }