001package com.fs.starfarer.api.impl.campaign.events;
002
003import java.awt.Color;
004import java.util.HashMap;
005import java.util.Map;
006
007import com.fs.starfarer.api.Global;
008import com.fs.starfarer.api.campaign.StarSystemAPI;
009import com.fs.starfarer.api.campaign.comm.MessagePriority;
010import com.fs.starfarer.api.campaign.events.CampaignEventTarget;
011
012public class TestEvent extends BaseEventPlugin {
013
014        private float elapsedDays = 0f;
015        private CampaignEventTarget eventTarget;
016
017        private boolean started = false;
018        private int stage = 0;
019        private String type;
020
021        public void init(String type, CampaignEventTarget eventTarget) {
022                this.type = type;
023                this.eventTarget = eventTarget;
024        }
025        
026        public void startEvent() {
027                started = true;
028        }
029        
030        public void advance(float amount) {
031                if (Global.getSector().isPaused()) return;
032                if (!started) return;
033                
034                //System.out.println("Advance() in TestEvent called");
035                float days = Global.getSector().getClock().convertToDays(amount);
036                
037                elapsedDays += days;
038                
039                if (elapsedDays > 0 && stage == 0) {
040                        System.out.println("Test event reporting stage start");
041                        Global.getSector().reportEventStage(this, "start", MessagePriority.SECTOR);
042                        stage++;
043                }
044                
045                if (elapsedDays > 1 && stage == 1) {
046                        System.out.println("Test event reporting stage warning_relief");
047                        Global.getSector().reportEventStage(this, "warning_relief", MessagePriority.SECTOR);
048                        stage++;
049                }
050                
051                if (elapsedDays > 2 && stage == 2) {
052                        System.out.println("Test event reporting stage relief_sent");
053                        Global.getSector().reportEventStage(this, "relief_sent", MessagePriority.SYSTEM);
054                        stage++;
055                }
056                
057                if (elapsedDays > 3 && stage == 3) {
058                        System.out.println("Test event reporting stage relief_arrived");
059                        Global.getSector().reportEventStage(this, "relief_arrived", MessagePriority.SYSTEM);
060                        stage++;
061                }
062                
063//              if (elapsedDays > 4 && stage == 4) {
064//                      System.out.println("Test event reporting stage end");
065//                      Global.getSector().reportEventStage(this, "end", MessagePriority.SECTOR);
066//                      stage++;
067//              }
068        }
069
070        public boolean isDone() {
071                return elapsedDays > 15f || stage >= 4;
072        }
073
074        public CampaignEventTarget getEventTarget() {
075                return eventTarget;
076        }
077
078        public String getEventType() {
079                return type;
080        }
081
082        public Map<String, String> getTokenReplacements() {
083                Map<String, String> map = new HashMap<String, String>();
084
085                /*
086                 $market
087                 $marketSystem
088                 $targetFaction
089                 $reliefSystem
090                 $reliefEntity
091                 $playerName
092                 */
093                
094                map.put("$market", eventTarget.getEntity().getName());
095                
096                if (eventTarget.getLocation() instanceof StarSystemAPI) {
097                        map.put("$marketSystem", ((StarSystemAPI)eventTarget.getLocation()).getBaseName() + " star system");
098                } else {
099                        map.put("$marketSystem", "hyperspace");
100                }
101                map.put("$targetFaction", eventTarget.getEntity().getFaction().getDisplayName());
102                map.put("$reliefSystem", "Askonia");
103                map.put("$reliefEntity", "Volturn");
104                
105                
106                return map;
107                
108        }
109        
110        
111        public MessagePriority getWarningWhenPossiblePriority() {
112                return MessagePriority.SECTOR;
113        }
114        
115        public MessagePriority getWarningWhenLikelyPriority() {
116                return MessagePriority.SECTOR;
117        }
118
119        public String getStageIdForLikely() {
120                return "likely";
121        }
122
123        public String getStageIdForPossible() {
124                return "possible";
125        }
126
127        public void cleanup() {
128                // TODO Auto-generated method stub
129                
130        }
131
132        public void setParam(Object param) {
133                // TODO Auto-generated method stub
134                
135        }
136
137        public boolean allowMultipleOngoingForSameTarget() {
138                // TODO Auto-generated method stub
139                return false;
140        }
141
142        public Color[] getHighlightColors(String stageId) {
143                // TODO Auto-generated method stub
144                return null;
145        }
146
147        public String[] getHighlights(String stageId) {
148                // TODO Auto-generated method stub
149                return null;
150        }
151
152}
153
154
155
156