/* * class chapter_01 * * * Can NOT be used in network game ! */ class tutorial.chapter_03 extends basic_chapter { chapter_name = "Riding the Rails" startcash = 500000 // pl=0 startcash; 0=no reset glbpos = null gltool = null //Step 1 pot1 = 0 pot2 = 0 pot3 = 0 pot4 = 0 cfarm = coord(65,41) cmill = coord(67,26) label1 = coord(67,40) label2 = coord(67,35) label3 = coord(67,28) c1_waya = coord(66,41) c1_wayb = coord(68,34) c2_waya = coord(67,40) c2_wayb = coord(67,28) tpos1 = coord(67,40) tpos2 = coord(67,35) tpos3 = coord(67,32) tpos4 = coord(67,27) tpos5 = coord(65,27) function set_goal_text(text){ text.cfar=cfarm.href("farm")+"" text.cmi=cmill.href("Mill")+"" return text } function is_chapter_completed(pl) { if (pl != 0) return 0 // only human player = 0 local percentage=0 if (persistent.pot_label[0]!=0)pot1=persistent.pot_label[0] if (persistent.pot_label[1]!=0)pot2=persistent.pot_label[1] if (persistent.pot_label[2]!=0)pot3=persistent.pot_label[2] if (persistent.pot_label[3]!=0)pot4=persistent.pot_label[3] persistent.pot_label[0]=pot1 persistent.pot_label[1]=pot2 persistent.pot_label[2]=pot3 persistent.pot_label[3]=pot4 switch (this.step) { case 1: //if (!tile_x(label1.x, label1.y, 0).find_object(mo_label)) label_x.create(label1, player_x(0), translate("Form here")) //if (!tile_x(label1.x, label1.y, 0).find_object(mo_label)&&!tile_x(label2.x, label2.y, 0).find_object(mo_tunnel)) // label_x.create(label2, player_x(0), translate("Build a tunnel here")) //else tile_x(label1.x, label1.y, 0).remove_object(player_x(0), mo_label) //if (tile_x(label1.x, label1.y, 0).find_object(mo_way))this.next_step() break; case 2: //tile_x(label1.x, label1.y, 0).remove_object(player_x(0), mo_label) //tile_x(label2.x, label2.y, 0).remove_object(player_x(0), mo_label) //if(!tile_x(label3.x, label3.y, 0).find_object(mo_way))this.backward_step() return 0 break; case 3: return 10+percentage break case 4: return 50 break case 5: return 65 break case 6: return 80 break case 7: return 100 break } return percentage } function is_work_allowed_here(pl, tool_id, pos) { local result = translate("Action not allowed")+tool_id // null is equivalent to 'allowed' glbpos = coord(pos.x,pos.y) gltool = tool_id switch (this.step) { case 1: /*if (pos.x>c1_waya.x && pos.yc1_wayb.y){ if((tool_id==4111)||(tool_id==4110)||(tool_id==4097)||(tool_id==4013)||(tool_id==4129)){ //if ((tool_id==4097)&&(tile_x(pos.x, pos.y, 0).find_object(mo_label))) // return result = translate("No debe eliminar la etiqueta de texto") result = null } if (pos.x==label2.x && pos.y==label2.y){ if ((tool_id==4097)||(tool_id==4112)){ //if ((tool_id==4097)&&(tile_x(pos.x, pos.y, 0).find_object(mo_label))) //return result = translate("No debe eliminar la etiqueta de texto") result = null } } } */ break; case 2: break; case 3: break case 4: break case 5: break case 6: break case 7: break } if (tool_id == 4096) result = null // Always allow query tool return result } function is_schedule_allowed(pl, schedule) { local result=null // null is equivalent to 'allowed' return result } function set_all_rules(pl) { local forbid = [tool_build_way,tool_build_bridge,tool_build_tunnel,tool_build_station,tool_remove_way,tool_build_depot,tool_build_roadsign,tool_build_wayobj] foreach(wt in all_waytypes) if (wt != wt_rail) { foreach (tool_id in forbid) rules.forbid_way_tool(pl, tool_id, wt ) } local forbid = [tool_build_wayobj,tool_build_roadsign] foreach (tool_id in forbid) rules.forbid_way_tool(pl, tool_id, wt_rail ) // tool "climate zones" = 4135 local forbid = [4135,tool_lower_land,tool_raise_land,tool_setslope,tool_restoreslope,tool_make_stop_public,tool_build_transformer] foreach (tool_id in forbid) rules.forbid_tool(pl, tool_id ) } } // END of class // END OF FILE