Advertisement
nio_kasgami

Game_AI_Conversion {opal}

Aug 10th, 2015
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Generated by Opal 0.8.0.beta1 */
  2. (function(Opal) {
  3.   Opal.dynamic_require_severity = "error";
  4.   function $rb_plus(lhs, rhs) {
  5.     return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs);
  6.   }
  7.   function $rb_minus(lhs, rhs) {
  8.     return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs);
  9.   }
  10.   function $rb_le(lhs, rhs) {
  11.     return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs);
  12.   }
  13.   function $rb_ge(lhs, rhs) {
  14.     return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs);
  15.   }
  16.   function $rb_gt(lhs, rhs) {
  17.     return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs);
  18.   }
  19.   function $rb_lt(lhs, rhs) {
  20.     return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs);
  21.   }
  22.   var self = Opal.top, $scope = Opal, nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $hash2 = Opal.hash2, $gvars = Opal.gvars, $klass = Opal.klass;
  23.  
  24.   Opal.add_stubs(['$[]=', '$include', '$attr_accessor', '$[]', '$check_message_types', '$retrieve_dialogues_and_voices', '$init_sprite', '$===', '$interaction', '$greeting_reactions', '$add', '$new_page', '$call_voice', '$new', '$bitmap=', '$system', '$to_s', '$x=', '$y=', '$z=', '$opacity=', '$ox', '$x', '$oy', '$y', '$dispose', '$bitmap', '$update_effect', '$!', '$busy?', '$refresh', '$init_entering_effects', '$init_quitting_effects', '$==', '$execute_inhori_slide', '$execute_inverti_slide', '$execute_fadein', '$execute_outverti_slide', '$execute_ouverti_slide', '$execute_fadeout', '$opacity', '$invert_effect', '$ox=', '$oy=', '$play', '$pathfile']);
  25.   (function($base) {
  26.     var self = $module($base, 'Emoji');
  27.  
  28.     var def = self.$$proto, $scope = self.$$scope;
  29.  
  30.     (function($base) {
  31.       var self = $module($base, 'AI');
  32.  
  33.       var def = self.$$proto, $scope = self.$$scope, $a;
  34.  
  35.       Opal.cdecl($scope, 'System', $hash2(["ai_graphics_folder", "voice_folder", "effects_enable", "message_system"], {"ai_graphics_folder": "Graphics/AI/", "voice_folder": "voice", "effects_enable": true, "message_system": "default"}));
  36.  
  37.       ((($a = $scope.get('AI_Personality')) !== false && $a !== nil) ? $a : Opal.cdecl($scope, 'AI_Personality', $hash2([], {})));
  38.  
  39.       $scope.get('AI_Personality')['$[]='](1, $hash2(["ai_sprite", "ai_posx", "ai_posy", "ai_posz", "entering_effect_type", "quitting_effect_type", "invert_effect", "greeting", "good_bye", "buy_goods_dialogues", "sell_goods_dialogues", "not_buying_dialogues", "not_selling_dialogues", "haggle_goods_dialogues", "suceed_haggles_dialogues", "fail_haggles_dialogues", "good_reputation_greeting", "bad_reputation_greeting", "kick_out_shop_dialogues", "patience"], {"ai_sprite": "dummy_", "ai_posx": 0, "ai_posy": 0, "ai_posz": 200, "entering_effect_type": "hori_slide", "quitting_effect_type": "execute_outhori_slide", "invert_effect": false, "greeting": "yeah", "good_bye": "", "buy_goods_dialogues": "text", "sell_goods_dialogues": "", "not_buying_dialogues": "", "not_selling_dialogues": "", "haggle_goods_dialogues": "", "suceed_haggles_dialogues": "", "fail_haggles_dialogues": "", "good_reputation_greeting": "", "bad_reputation_greeting": "", "kick_out_shop_dialogues": "", "patience": 100}));
  40.     })(self)
  41.   })(self);
  42.   $gvars.version = 1;
  43.   return (function($base, $super) {
  44.     function $Game_AI(){};
  45.     var self = $Game_AI = $klass($base, $super, 'Game_AI', $Game_AI);
  46.  
  47.     var def = self.$$proto, $scope = self.$$scope;
  48.  
  49.     def.ai_id = def.ai_personality = def.interaction_type = def.buy_goods_dialogues = def.greeting = def.dialogue_system = def.ai_sprite = def.index = def.sprite = def.effect_flag = def.flag_type = def.time_value = def.final_pos = def.effect_type = def.fadein_value = def.hori_left = def.hori_right = def.verti_down = def.verti_up = def.fadeout_value = def.voice_folder = nil;
  50.     self.$include((($scope.get('Emoji')).$$scope.get('AI')));
  51.  
  52.     self.$attr_accessor("ai_enable");
  53.  
  54.     self.$attr_accessor("dialogues");
  55.  
  56.     self.$attr_accessor("greeting");
  57.  
  58.     self.$attr_accessor("goodbye");
  59.  
  60.     self.$attr_accessor("buy_goods_dialogues");
  61.  
  62.     self.$attr_accessor("sell_goods_dialogues");
  63.  
  64.     self.$attr_accessor("not_buying_dialogues");
  65.  
  66.     self.$attr_accessor("not_selling_dialogues");
  67.  
  68.     self.$attr_accessor("interaction");
  69.  
  70.     self.$attr_accessor("interaction_type");
  71.  
  72.     self.$attr_accessor("ai_id");
  73.  
  74.     self.$attr_accessor("ai_sprite");
  75.  
  76.     self.$attr_accessor("index");
  77.  
  78.     def.$initialize = function(ai_id) {
  79.       var self = this;
  80.  
  81.       self.ai_id = ai_id;
  82.       self.ai_personality = $scope.get('AI_Personality')['$[]'](self.ai_id);
  83.       self.voice = self.ai_personality['$[]'](self.ai_id);
  84.       self.interaction_type = "normal";
  85.       self.$check_message_types();
  86.       self.$retrieve_dialogues_and_voices();
  87.       return self.$init_sprite();
  88.     };
  89.  
  90.     def.$retrieve_dialogues_and_voices = function() {
  91.       var self = this;
  92.  
  93.       self.greeting = self.ai_personality['$[]']("greeting");
  94.       self.goodbye = self.ai_personality['$[]']("goodbye");
  95.       self.buy_goods_dialogues = self.ai_personality['$[]']("buy_goods_dialogues");
  96.       self.sell_goods_dialogues = self.ai_personality['$[]']("sell_goods_dialogues");
  97.       self.not_buying_dialogues = self.ai_personality['$[]']("not_buying_dialogues");
  98.       return self.not_selling_dialogues = self.ai_personality['$[]']("not_selling_dialogues");
  99.     };
  100.  
  101.     def.$check_message_types = function() {
  102.       var self = this, $case = nil;
  103.       if ($gvars.game_message == null) $gvars.game_message = nil;
  104.       if ($gvars.game_dialogues == null) $gvars.game_dialogues = nil;
  105.  
  106.       return (function() {$case = $scope.get('System')['$[]']("message_system");if ("default"['$===']($case)) {return self.dialogue_system = $gvars.game_message}else if ("nio_ai_dialogues"['$===']($case)) {return self.dialogue_system = $gvars.game_dialogues}else { return nil }})();
  107.     };
  108.  
  109.     def.$init_flags = function() {
  110.       var $a, self = this;
  111.  
  112.       if ((($a = $scope.get('System')['$[]']("effects_enable")) !== nil && (!$a.$$is_boolean || $a == true))) {
  113.         self.flag_type = "entering";
  114.         self.effect_flag = true;};
  115.       self.interaction_type = "greeting_action";
  116.       return self.$interaction();
  117.     };
  118.  
  119.     def.$interaction = function() {
  120.       var self = this, $case = nil;
  121.       if ($gvars.game_message == null) $gvars.game_message = nil;
  122.  
  123.       return (function() {$case = self.interaction_type;if ("greeting_action"['$===']($case)) {return self.$greeting_reactions()}else if ("try2"['$===']($case)) {self.index = 1;
  124.       return $gvars.game_message.$add(self.buy_goods_dialogues);}else if ("try3"['$===']($case)) {return self.index = 2}else if ("over"['$===']($case)) {self.index = 2;
  125.       $gvars.game_message.$add(self.greeting);
  126.       $gvars.game_message.$new_page();
  127.       $gvars.game_message.$add("stuff");
  128.       return self.$call_voice("rawr", 100, 100);}else { return nil }})();
  129.     };
  130.  
  131.     def.$greeting_reactions = function() {
  132.       var self = this;
  133.  
  134.       self.index = 2;
  135.       return self.dialogue_system.$add(self.greeting);
  136.     };
  137.  
  138.     def.$init_sprite = function() {
  139.       var $a, $b, self = this;
  140.  
  141.       self.ai_sprite = self.ai_personality['$[]']("ai_sprite");
  142.       self.index = 0;
  143.       self.sprite = $scope.get('Sprite').$new();
  144.       (($a = [$scope.get('Cache').$system($rb_plus(self.ai_sprite, self.index.$to_s()))]), $b = self.sprite, $b['$bitmap='].apply($b, $a), $a[$a.length-1]);
  145.       (($a = [self.ai_personality['$[]']("ai_posx")]), $b = self.sprite, $b['$x='].apply($b, $a), $a[$a.length-1]);
  146.       (($a = [self.ai_personality['$[]']("ai_posy")]), $b = self.sprite, $b['$y='].apply($b, $a), $a[$a.length-1]);
  147.       (($a = [self.ai_personality['$[]']("ai_posz")]), $b = self.sprite, $b['$z='].apply($b, $a), $a[$a.length-1]);
  148.       (($a = [250]), $b = self.sprite, $b['$opacity='].apply($b, $a), $a[$a.length-1]);
  149.       self.effect_flag = false;
  150.       self.effect_type = "nil";
  151.       self.flag_type = "nil";
  152.       self.invert_effect = self.ai_personality['$[]']("invert_effect");
  153.       self.hori_left = ($rb_minus($rb_minus(self.sprite.$ox(), self.sprite.$x()), 100));
  154.       self.hori_right = ($rb_plus($rb_plus(self.sprite.$ox(), self.sprite.$x()), 100));
  155.       self.verti_up = ($rb_minus($rb_minus(self.sprite.$oy(), self.sprite.$y()), 100));
  156.       self.time_value = 0;
  157.       self.fadein_value = 2;
  158.       return self.fadeout_value = 2;
  159.     };
  160.  
  161.     def.$refresh = function() {
  162.       var self = this;
  163.  
  164.       return self.index = 0;
  165.     };
  166.  
  167.     def.$terminate_sprite = function() {
  168.       var self = this;
  169.  
  170.       self.sprite.$dispose();
  171.       return self.sprite.$bitmap().$dispose();
  172.     };
  173.  
  174.     def.$update_sprite = function() {
  175.       var $a, $b, self = this;
  176.  
  177.       (($a = [$scope.get('Cache').$system($rb_plus(self.ai_sprite, self.index.$to_s()))]), $b = self.sprite, $b['$bitmap='].apply($b, $a), $a[$a.length-1]);
  178.       if ((($a = self.effect_flag) !== nil && (!$a.$$is_boolean || $a == true))) {
  179.         self.$update_effect()};
  180.       if ((($a = self.dialogue_system['$busy?']()['$!']()) !== nil && (!$a.$$is_boolean || $a == true))) {
  181.         return self.$refresh()
  182.         } else {
  183.         return nil
  184.       };
  185.     };
  186.  
  187.     def.$update_effect = function() {
  188.       var self = this, $case = nil;
  189.  
  190.       return (function() {$case = self.flag_type;if ("entering"['$===']($case)) {self.effect_type = self.ai_personality['$[]']("entering_effect_type");
  191.       return self.$init_entering_effects();}else if ("quitting"['$===']($case)) {self.effect_type = self.ai_personality['$[]']("quitting_effect_type");
  192.       return self.$init_quitting_effects();}else { return nil }})();
  193.     };
  194.  
  195.     def.$execute_dummy = function() {
  196.       var $a, $b, self = this;
  197.  
  198.       self.final_pos = self.ai_personality['$[]']("ai_posx");
  199.       while ($rb_le(self.time_value, 200)) {
  200.       ($b = self.sprite, $b['$x=']($rb_plus($b.$x(), 2)));
  201.       self.time_value = $rb_plus(self.time_value, 2);
  202.       if ($rb_ge(self.sprite.$x(), $rb_plus(self.final_pos, 70))) {
  203.         break;};};
  204.     };
  205.  
  206.     def.$init_entering_effects = function() {
  207.       var self = this;
  208.  
  209.       if (self.effect_type['$==']("hori_slide")) {
  210.         self.$execute_inhori_slide()};
  211.       if (self.effect_type['$==']("verti_slide")) {
  212.         self.$execute_inverti_slide()};
  213.       if (self.effect_type['$==']("fadein")) {
  214.         return self.$execute_fadein()
  215.         } else {
  216.         return nil
  217.       };
  218.     };
  219.  
  220.     def.$init_quitting_effects = function() {
  221.       var self = this;
  222.  
  223.       if (self.effect_type['$==']("hori_slide")) {
  224.         self.$execute_outverti_slide()};
  225.       if (self.effect_type['$==']("verti_slide")) {
  226.         self.$execute_ouverti_slide()};
  227.       if (self.effect_type['$==']("fadeout")) {
  228.         return self.$execute_fadeout()
  229.         } else {
  230.         return nil
  231.       };
  232.     };
  233.  
  234.     def.$execute_inhori_slide = function(time_value, hori_left, hori_right) {
  235.       var $a, $b, self = this;
  236.  
  237.       self.time_value = 0;
  238.       self.final_pos = self.ai_personality['$[]']("ai_posx");
  239.       if ($rb_gt(self.time_value, 250)) {
  240.         ($a = self.sprite, $a['$x=']($rb_plus($a.$x(), 2)))
  241.         } else {
  242.         (($a = [self.final_pos]), $b = self.sprite, $b['$x='].apply($b, $a), $a[$a.length-1])
  243.       };
  244.       return self.effect_flag = false;
  245.     };
  246.  
  247.     def.$execute_inverti_slide = function() {
  248.       var $a, $b, self = this;
  249.  
  250.       self.final_pos = self.ai_personality['$[]']("ai_posy");
  251.       while ($rb_le(self.time_value, 200)) {
  252.       ($b = self.sprite, $b['$y=']($rb_minus($b.$y(), 2)));
  253.       self.time_value = $rb_plus(self.time_value, 2);
  254.       if ($rb_le(self.sprite.$y(), $rb_plus(self.final_pos, 70))) {
  255.         break;};};
  256.       if (self.sprite.$y()['$=='](self.final_pos)) {
  257.         return self.effect_flag = false
  258.         } else {
  259.         return nil
  260.       };
  261.     };
  262.  
  263.     def.$execute_fadein = function(time_value, fadein_value) {
  264.       var $a, $b, $c, self = this;
  265.  
  266.       self.time_value = 0;
  267.       while ($rb_lt(self.time_value, 250)) {
  268.       self.time_value = $rb_plus(self.time_value, 2);
  269.       ($b = self.sprite, $b['$opacity=']($rb_plus($b.$opacity(), self.fadein_value)));
  270.       if ((($b = ((($c = $rb_ge(self.sprite.$opacity(), 250)) !== false && $c !== nil) ? $c : $rb_ge(self.time_value, 250))) !== nil && (!$b.$$is_boolean || $b == true))) {
  271.         break;};};
  272.       return self.effect_flag = false;
  273.     };
  274.  
  275.     def.$execute_outhori_slide = function(time_value, hori_left, hori_right) {
  276.       var $a, $b, $c, self = this;
  277.  
  278.       self.time_value = 0;
  279.       if ((($a = self.$invert_effect()['$!']()) !== nil && (!$a.$$is_boolean || $a == true))) {
  280.         while ($rb_lt(self.time_value, 250)) {
  281.         self.time_value = $rb_plus(self.time_value, 2);
  282.         ($b = self.sprite, $b['$ox=']($rb_minus($b.$ox(), 2)));
  283.         if ((($b = ((($c = $rb_ge(self.sprite.$x(), self.hori_left)) !== false && $c !== nil) ? $c : $rb_ge(self.time_value, 250))) !== nil && (!$b.$$is_boolean || $b == true))) {
  284.           break;};}
  285.         } else {
  286.         while ($rb_lt(self.time_value, 250)) {
  287.         self.time_value = $rb_plus(self.time_value, 2);
  288.         ($b = self.sprite, $b['$ox=']($rb_plus($b.$ox(), 2)));
  289.         if ((($b = ((($c = $rb_ge(self.sprite.$x(), self.hori_right)) !== false && $c !== nil) ? $c : $rb_ge(self.time_value, 250))) !== nil && (!$b.$$is_boolean || $b == true))) {
  290.           break;};}
  291.       };
  292.       return self.effect_flag = false;
  293.     };
  294.  
  295.     def.$execute_outverti_slide = function(time_value, verti_down, verti_up) {
  296.       var $a, $b, $c, self = this;
  297.  
  298.       self.time_value = 0;
  299.       if ((($a = self.$invert_effect()['$!']()) !== nil && (!$a.$$is_boolean || $a == true))) {
  300.         while ($rb_lt(self.time_value, 250)) {
  301.         self.time_value = $rb_plus(self.time_value, 2);
  302.         ($b = self.sprite, $b['$oy=']($rb_minus($b.$oy(), 2)));
  303.         if ((($b = ((($c = $rb_ge(self.sprite.$y(), self.verti_down)) !== false && $c !== nil) ? $c : $rb_ge(self.time_value, 250))) !== nil && (!$b.$$is_boolean || $b == true))) {
  304.           break;};}
  305.         } else {
  306.         while ($rb_lt(self.time_value, 250)) {
  307.         self.time_value = $rb_plus(self.time_value, 2);
  308.         ($b = self.sprite, $b['$oy=']($rb_plus($b.$oy(), 2)));
  309.         if ((($b = ((($c = $rb_ge(self.sprite.$y(), self.verti_up)) !== false && $c !== nil) ? $c : $rb_ge(self.time_value, 250))) !== nil && (!$b.$$is_boolean || $b == true))) {
  310.           break;};}
  311.       };
  312.       return self.effect_flag = false;
  313.     };
  314.  
  315.     def.$execute_fadeout = function(time_value, fadeout_value) {
  316.       var $a, $b, $c, self = this;
  317.  
  318.       self.time_value = 0;
  319.       while ($rb_lt(self.time_value, 250)) {
  320.       self.time_value = $rb_plus(self.time_value, 2);
  321.       ($b = self.sprite, $b['$opacity=']($rb_minus($b.$opacity(), self.fadeout_value)));
  322.       if ((($b = ((($c = $rb_le(self.sprite.$opacity(), 0)) !== false && $c !== nil) ? $c : $rb_ge(self.time_value, 250))) !== nil && (!$b.$$is_boolean || $b == true))) {
  323.         break;};};
  324.       return self.effect_flag = false;
  325.     };
  326.  
  327.     def.$pathfile = function() {
  328.       var self = this, pathfile = nil;
  329.  
  330.       self.voice_folder = $scope.get('System')['$[]']("voice_folder");
  331.       return pathfile = $rb_plus(self.voice_folder, "/");
  332.     };
  333.  
  334.     return (def.$call_voice = function(voice_index, volume, pitch) {
  335.       var self = this;
  336.  
  337.       return (($scope.get('RPG')).$$scope.get('SE')).$new($rb_plus(self.$pathfile(), voice_index), volume, pitch).$play();
  338.     }, nil) && 'call_voice';
  339.   })(self, null);
  340. })(Opal);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement