Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Haxe 9.96 KB | None | 0 0
  1. package com.isartdigital.diamant.ui.hud.wireframes;
  2.  
  3. import com.isartdigital.diamant.game.controllers.buildings.generic.TileController;
  4. import com.isartdigital.diamant.game.controllers.buildings.generic.UpgradableController;
  5. import com.isartdigital.diamant.game.pooling.PoolManager;
  6. import com.isartdigital.diamant.game.server.ServerActionManager;
  7. import com.isartdigital.diamant.game.sprites.tiles.GraphicTile;
  8. import com.isartdigital.diamant.game.sprites.tiles.UpgradableTile;
  9. import com.isartdigital.diamant.tools.ButtonUtils;
  10. import com.isartdigital.diamant.tools.JsonHelper;
  11. import com.isartdigital.diamant.tools.SFXManager;
  12. import com.isartdigital.diamant.ui.hud.buttons.BuildingButtonShop;
  13. import com.isartdigital.diamant.ui.hud.FreezingPopin;
  14. import com.isartdigital.utils.ui.smart.SmartButton;
  15. import com.isartdigital.utils.ui.smart.SmartComponent;
  16. import com.isartdigital.utils.ui.smart.TextSprite;
  17. import com.isartdigital.utils.ui.smart.UISprite;
  18. import haxe.Constraints.Function;
  19. import pixi.core.text.Text;
  20. import pixi.interaction.EventTarget;
  21.  
  22.    
  23. /**
  24.  * ...
  25.  * @author Etienne HECK
  26.  */
  27. class Management extends FreezingPopin
  28. {
  29.    
  30.     /**
  31.      * instance unique de la classe Management
  32.      */
  33.     private static var instance: Management;
  34.     public var doAction:Function;
  35.     private var logo:SmartComponent;
  36.    
  37.     private static var LAYER_TEXT_TITLE:String = "ManagementUpgrades_Title";
  38.     //private static var LAYER_TEXT_TITLE_BACKGROUND:String = "ManagementUpgrades_Title_Background";
  39.     private static var LAYER_TEXT_DESCRIPTION:String = "ManagementUpgrades_Description";
  40.    
  41.     private static var LAYER_MANAGEMENT_UPGRADE_DESCRIPTION:String = "ManagementUpgrades_Description";
  42.     private static var LAYER_MANAGEMENT_UPGRADE:String = "Management_Upgrade";
  43.     private static var LAYER_MANAGEMENT_UPGRADE_DESCRIPTION_BACKGROUND:String = "ManagementUpgrades_Description_Background";
  44.    
  45.     //title
  46.     private static var LAYER_UPGRADE_SELL_TEXT:String = "ManagementUpgrades_Sell_Text";
  47.     private static var LAYER_UPGRADE_CARD_NEXT_TITLE:String = "ManagementUpgrades_Upgrade_next";
  48.     private static var LAYER_UPGRADE_CARD_CURRENT_TITLE:String = "ManagementUpgrades_Upgrade_actual";
  49.     private static var LAYER_UPGRADE_CARD_MAX_TITLE:String = "ManagementUpgrades_Upgrade_max";
  50.     //description
  51.     private static var LAYER_UPGRADE_CARD_MAX_DESCRIPTION:String = "UpgradeMax_Text_Description";
  52.     private static var LAYER_UPGRADE_CARD_NEXT_DESCRIPTION:String = "UpgradeNext_Text_Description";
  53.     private static var LAYER_UPGRADE_CARD_CURRENT_DESCRIPTION:String = "UpgradeActual_Text_Description";
  54.    
  55.     //windows
  56.     private static var WINDOWS_ACTUAL:String = "Window_actual";
  57.     private static var WINDOWS_MAX:String = "Window_max";
  58.     private static var WINDOWS_NEXT:String = "Window_next";
  59.    
  60.     private static var LAYER_UPGRADE_DESCRIPTION_LEVEL:String = "Upgrades_Description";
  61.    
  62.  
  63.    
  64.     private static var LAYER_LOGO:String = "ShopBuilding_Item_Logo";
  65.     private static var LAYER_MANAGEMENT_BTNSELL:String = "ManagementUpgrades_Sell_Button";
  66.     private static var LAYER_MANAGEMENT_BACKGROUND:String = "ManagementUpgrades_Background";
  67.    
  68.     private var hudSpecial:SmartComponent;
  69.     private var hudUpgrade:SmartComponent;
  70.     //windows
  71.     private var windowsActual:UISprite;
  72.     private var windowsMax:UISprite;
  73.     private var windowsNext:UISprite;
  74.     //title
  75.     private var upgradeCardNext:TextSprite;
  76.     private var upgradeCardCurrent:TextSprite;
  77.     private var upgradeCardMax:TextSprite;
  78.     //description
  79.     private var upgradeCardNextDescription:TextSprite;
  80.     private var upgradeCardCurrentDescription:TextSprite;
  81.     private var upgradeCardMaxDescription:TextSprite;
  82.    
  83.    
  84.    
  85.     public var btnSell:SmartButton;
  86.     private var btnTabUpgrade:SmartButton;
  87.    
  88.     private var textBtnTabUpgrade:Text;
  89.    
  90.     /**
  91.      * Retourne l'instance unique de la classe, et la crée si elle n'existait pas au préalable
  92.      * @return instance unique
  93.      */
  94.     public static function getInstance (): Management {
  95.         if (instance == null) instance = new Management();
  96.         return instance;
  97.     }
  98.    
  99.     /**
  100.      * constructeur privé pour éviter qu'une instance soit créée directement
  101.      */
  102.     private function new(pID:String=null)
  103.     {
  104.         super("MCP_Management");
  105.         shouldEndSelection = false;
  106.         hudUpgrade = cast(getChildByName(LAYER_MANAGEMENT_UPGRADE), SmartComponent);
  107.         modal = true;
  108.         btnSell = ButtonUtils.createButton(btnSell, hudUpgrade, LAYER_MANAGEMENT_BTNSELL, onSell);
  109.         btnSell.visible = false;
  110.        
  111.         //title
  112.         upgradeCardNext = cast(hudUpgrade.getChildByName(LAYER_UPGRADE_CARD_NEXT_TITLE), TextSprite);
  113.         upgradeCardCurrent = cast(hudUpgrade.getChildByName(LAYER_UPGRADE_CARD_CURRENT_TITLE), TextSprite);
  114.         upgradeCardMax = cast(hudUpgrade.getChildByName(LAYER_UPGRADE_CARD_MAX_TITLE), TextSprite);
  115.         upgradeCardMax.visible = false;
  116.        
  117.        
  118.         //windows
  119.         windowsActual = cast(hudUpgrade.getChildByName(WINDOWS_ACTUAL), UISprite);
  120.         windowsMax = cast(hudUpgrade.getChildByName(WINDOWS_MAX), UISprite);
  121.         windowsNext = cast(hudUpgrade.getChildByName(WINDOWS_NEXT), UISprite);
  122.         windowsMax.visible = false;
  123.        
  124.         //description
  125.         upgradeCardCurrentDescription = cast(hudUpgrade.getChildByName(LAYER_UPGRADE_CARD_CURRENT_DESCRIPTION), TextSprite);
  126.         upgradeCardNextDescription = cast(hudUpgrade.getChildByName(LAYER_UPGRADE_CARD_NEXT_DESCRIPTION), TextSprite);
  127.         upgradeCardMaxDescription = cast(hudUpgrade.getChildByName(LAYER_UPGRADE_CARD_MAX_DESCRIPTION), TextSprite);
  128.         upgradeCardMaxDescription.text = ServerActionManager.getInstance().getDescription(TileController.selectedController.controlledSet.model.name,TileController.selectedController.controlledSet.model.level).flavour;
  129.     }
  130.    
  131.     private function displayMaxBuilding():Void {
  132.         var levelActual:Int = TileController.selectedController.controlledSet.model.level ;
  133.         var levelMax:Int = JsonHelper.getBuildingMaxLevel(TileController.selectedController.controlledSet.model.assetType)[0];
  134.         if (levelActual >= levelMax) {
  135.             upgradeCardMax.visible = true;
  136.             windowsMax.visible = true;
  137.             upgradeCardMaxDescription.visible = true;
  138.             windowsActual.visible = false;
  139.             windowsNext.visible = false;
  140.             upgradeCardNext.visible = false;
  141.             upgradeCardCurrent.visible = false;
  142.             upgradeCardCurrentDescription.visible = false;
  143.             upgradeCardNextDescription.visible = false;
  144.         }
  145.     }
  146.    
  147.    
  148.     public function onSell(pEvent:EventTarget) {
  149.         SFXManager.getInstance().playSound('sell');
  150.         var data = { name: TileController.selectedController.controlledSet.model.name,assetType:TileController.selectedController.controlledSet.model.assetType};
  151.         if(Main.getInstance().activateServer)ServerActionManager.getInstance().deleteBuilding(data);
  152.         TileController.selectedController.remove();
  153.         UIManager.getInstance().closeCurrentPopin();
  154.     }
  155.    
  156.    
  157.    
  158.     private function onTabUpgrade(pEvent:EventTarget) {
  159.         setModeUpgrade();
  160.     }
  161.    
  162.     /*--------------------VOID-------------------*/
  163.     public function setModeVoid():Void {
  164.         doAction = doActionVoid;
  165.     }
  166.    
  167.     private function doActionVoid():Void {
  168.        
  169.     }
  170.    
  171.    
  172.  
  173.     /*-----------------UPGRADE-------------------*/
  174.     public function setModeUpgrade():Void {
  175.         hudUpgrade.visible = true;
  176.         setHudUpgrade();
  177.     }
  178.    
  179.    
  180.    
  181.     public function setModeDecoration():Void {
  182.         upgradeCardNext.visible = false;
  183.         upgradeCardCurrent.visible = false;
  184.         upgradeCardMax.visible = false;
  185.         hudSpecial.visible = false;
  186.     }
  187.    
  188.     override public function open():Void
  189.     {
  190.         super.open();
  191.         fillInfos();
  192.         displayMaxBuilding();
  193.         setModeUpgrade();
  194.         updateLogo();
  195.     }
  196.    
  197.    
  198.     private function fillInfos():Void
  199.     {
  200.         var lBuildingInfo:Dynamic = JsonHelper.getBuildingDatas( TileController.selectedController.controlledSet.model.assetType);
  201.         var buildingName:TextSprite = cast(hudUpgrade.getChildByName(LAYER_TEXT_TITLE), TextSprite);
  202.         buildingName.text = Reflect.field(lBuildingInfo, "usedName");
  203.         //building description
  204.         var buildingDescription:TextSprite = cast(hudUpgrade.getChildByName(LAYER_TEXT_DESCRIPTION), TextSprite);
  205.        
  206.         /*METTRE LES FLAVOUR TEXT*/
  207.         buildingDescription.visible = false;
  208.        
  209.     }
  210.    
  211.     public function updateLogo():Void
  212.     {
  213.         logo = cast(getChildByName(LAYER_LOGO), SmartComponent);
  214.         var lBuildingInfo:Dynamic = JsonHelper.getBuildingDatas(TileController.selectedController.controlledSet.model.assetType);
  215.         if (lBuildingInfo != null && TileController.selectedController.controlledSet.model.assetType != "SocialBuilding") {
  216.             var lBuilding:GraphicTile = cast(PoolManager.getFromPool(TileController.selectedController.controlledSet.model.assetType), GraphicTile);
  217.             lBuilding.start();
  218.             if (Std.is(TileController.selectedController, UpgradableController))
  219.             {
  220.                 cast(lBuilding, UpgradableTile).setLevel(TileController.selectedController.controlledSet.model.level);
  221.             }
  222.             BuildingButtonShop.changeLogo(lBuilding, lBuildingInfo, logo,1.3);
  223.         }
  224.     }
  225.    
  226.     private function setHudUpgrade():Void {
  227.        
  228.         //description
  229.        
  230.         //upgradeCardMaxDescription.text=ServerActionManager.getInstance().getDescription( TileController.selectedController.controlledSet.model.assetType,TileController.selectedController.controlledSet.model.level) ;
  231.         //upgradeCardNextDescription.text=ServerActionManager.getInstance().getDescription( TileController.selectedController.controlledSet.model.assetType,TileController.selectedController.controlledSet.model.level) ;
  232.         if (ServerActionManager.getInstance().isBuildingDescriptRestored == true) {
  233.             upgradeCardMaxDescription.text= upgradeCardMaxDescription.text=ServerActionManager.getInstance().getDescription( TileController.selectedController.controlledSet.model.assetType,TileController.selectedController.controlledSet.model.level).description ;
  234.            
  235.             if (upgradeCardNextDescription.visible) upgradeCardNextDescription.text = ServerActionManager.getInstance().getDescription( TileController.selectedController.controlledSet.model.assetType, TileController.selectedController.controlledSet.model.level + 1).description;
  236.         }
  237.        
  238.     }
  239.    
  240.    
  241.     /**
  242.      * détruit l'instance unique et met sa référence interne à null
  243.      */
  244.     override public function destroy (): Void {
  245.         super.destroy();
  246.         instance = null;
  247.     }
  248.  
  249. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement