Section 1
//body_4 (cellgame_cs5_fla.body_4)
package cellgame_cs5_fla {
import flash.display.*;
public dynamic class body_4 extends MovieClip {
public function body_4(){
addFrameScript(0, frame1, 24, frame25, 41, frame42);
}
function frame1(){
stop();
}
function frame25(){
gotoAndStop(1);
}
function frame42(){
gotoAndStop(1);
}
}
}//package cellgame_cs5_fla
Section 2
//MainTimeline (cellgame_cs5_fla.MainTimeline)
package cellgame_cs5_fla {
import flash.display.*;
import flash.events.*;
import flash.text.*;
import flash.geom.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.media.*;
import flash.net.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.system.*;
import flash.ui.*;
import flash.utils.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var maxzellen:int;
public var searchrate:int;
public var DNArate:int;
public var playmode:String;
public var mincells:int;
public var zellen:Array;
public var zelldistanzen:Array;
public var i:int;
public var searchrate_count:int;
public var DNArate_count:int;
public var cur_select:int;
public var freecell:MovieClip;
public var activecells:int;
public var activefood:int;
public var freefood:MovieClip;
public var cellina:int;
public var hides:Array;
public var maxhides:int;
public var hidesize:int;
public var maxfood:int;
public var futter:Array;
public var startfood:int;
public var Petri:petri;
public var SelectRing:select_ring;
public var cellpanel:cellanalyse;
public var thehide:versteck;
public var essen:food;
public var zelle:cell;
public function MainTimeline(){
addFrameScript(0, frame1);
}
public function rand(_arg1:Number=0, _arg2:Number=1):Number{
return ((Math.floor((Math.random() * ((1 + _arg2) - _arg1))) + _arg1));
}
public function main(_arg1){
if (searchrate_count > searchrate){
searchnext();
searchrate_count = 0;
};
activecells = 0;
activefood = 0;
i = maxfood;
while (i-- > 0) {
if (futter[i].me_active == true){
futter[i].runfood();
activefood++;
};
};
cellina = maxzellen;
while (cellina-- > 0) {
if (zellen[cellina].me_active == true){
zellen[cellina].runCELL();
activecells++;
} else {
freecell = zellen[cellina];
freecell.visible = false;
};
};
if (activecells < mincells){
if (freecell != null){
freecell.me_active = true;
freecell.visible = true;
freecell.resetstats();
freecell = null;
};
};
if (cur_select != 0){
zellen[cur_select].showinfos();
SelectRing.x = zellen[cur_select].x;
SelectRing.y = zellen[cur_select].y;
};
searchrate_count++;
}
public function distanz(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{
var _local5:int = (_arg1 - _arg3);
var _local6:int = (_arg2 - _arg4);
var _local7:int = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
return (_local7);
}
public function searchnext(){
var _local1:int;
var _local2:int;
i = maxzellen;
while (i-- > 0) {
zellen[i].reset_distinfo();
};
i = maxzellen;
while (i-- > 0) {
_local1 = i;
while (_local1-- > 0) {
if (zellen[i].me_active == true){
_local2 = distanz(zellen[i].x, zellen[i].y, zellen[_local1].x, zellen[_local1].y);
zellen[i].checkcell(zellen[_local1], _local2);
zellen[_local1].checkcell(zellen[i], _local2);
};
};
};
i = maxzellen;
while (i-- > 0) {
_local1 = maxfood;
if (zellen[i].me_active == true){
while (_local1-- > 0) {
if (futter[_local1].me_active == true){
_local2 = distanz(zellen[i].x, zellen[i].y, futter[_local1].x, futter[_local1].y);
zellen[i].checkfood(futter[_local1], _local2);
};
};
};
};
}
public function mouseDownHandler(_arg1:MouseEvent):void{
Petri.startDrag();
}
public function mouseUpHandler(_arg1:MouseEvent):void{
Petri.stopDrag();
}
public function onMouseWheel(_arg1:MouseEvent):void{
if (_arg1.delta < 0){
Petri.width = (Petri.width + (10 * _arg1.delta));
Petri.height = (Petri.height + (10 * _arg1.delta));
if (Petri.width <= 600){
Petri.width = 600;
Petri.height = 600;
};
} else {
Petri.width = (Petri.width + (10 * _arg1.delta));
Petri.height = (Petri.height + (10 * _arg1.delta));
if (Petri.width >= 4000){
Petri.width = 4000;
Petri.height = 4000;
};
};
}
public function placefood(_arg1:int, _arg2:int):void{
var _local3:int = (maxfood - activefood);
if (_local3 > 5){
i = maxfood;
while (i-- > 0) {
if (futter[i].me_active == false){
_arg1 = (_arg1 + rand(-20, 20));
_arg2 = (_arg2 + rand(-20, 20));
futter[i].placeme(_arg1, _arg2);
i = 0;
};
};
};
}
public function melt_DNA(_arg1:int, _arg2:int){
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
if (zellen[_arg1].my_desire > 50){
_local3 = (maxzellen - activecells);
if (_local3 > 10){
i = maxzellen;
while (i-- > 0) {
if (zellen[i].me_active == false){
zellen[i].me_active = true;
zellen[i].visible = true;
_local5 = 0;
while (_local5 <= 10) {
_local4 = rand(1, 100);
if (_local4 < 2){
zellen[i].setCHROMOSOME(_local5);
} else {
_local4 = rand(1, 2);
if (_local4 == 1){
zellen[i].anw1_gen[_local5] = zellen[_arg1].anw1_gen[_local5];
zellen[i].anw2_gen[_local5] = zellen[_arg1].anw2_gen[_local5];
zellen[i].bind_gen[_local5] = zellen[_arg1].bind_gen[_local5];
zellen[i].do_gen[_local5] = zellen[_arg1].do_gen[_local5];
zellen[i].who_gen[_local5] = zellen[_arg1].who_gen[_local5];
} else {
zellen[i].anw1_gen[_local5] = zellen[_arg2].anw1_gen[_local5];
zellen[i].anw2_gen[_local5] = zellen[_arg2].anw2_gen[_local5];
zellen[i].bind_gen[_local5] = zellen[_arg2].bind_gen[_local5];
zellen[i].do_gen[_local5] = zellen[_arg2].do_gen[_local5];
zellen[i].who_gen[_local5] = zellen[_arg2].who_gen[_local5];
};
};
_local5++;
};
zellen[i].my_hunger = 0;
zellen[i].my_desire = 5;
zellen[i].my_life = 100;
zellen[i].my_strength = 1;
zellen[i].my_sleepiness = 0;
zellen[i].grow = 40;
zellen[i].my_childs = 0;
zellen[i].my_score = 10;
zellen[i].my_age = 10;
zellen[i].my_generation = (zellen[_arg1].my_generation + 1);
zellen[i].x = zellen[_arg2].x;
zellen[i].y = zellen[_arg2].y;
zellen[_arg1].my_desire = 0;
zellen[_arg2].my_desire = 0;
zellen[_arg1].my_childs++;
zellen[_arg2].my_childs++;
if ((((zellen[_arg1].me_group == 0)) && ((zellen[_arg2].me_group == 0)))){
_local6 = rand(1, 10);
zellen[_arg1].me_group = _local6;
zellen[_arg2].me_group = _local6;
} else {
if (zellen[_arg1].me_group == 0){
zellen[_arg1].me_group = zellen[_arg2].me_group;
zellen[i].me_group = zellen[_arg2].me_group;
} else {
if (zellen[_arg2].me_group == 0){
zellen[_arg2].me_group = zellen[_arg1].me_group;
zellen[i].me_group = zellen[_arg1].me_group;
} else {
_local7 = rand(1, 2);
if (_local7 == 1){
zellen[i].me_group = zellen[_arg1].me_group;
} else {
zellen[i].me_group = zellen[_arg2].me_group;
};
};
};
zellen[i].tintgroup();
zellen[_arg1].tintgroup();
zellen[_arg2].tintgroup();
};
i = 0;
};
};
};
};
}
function frame1(){
maxzellen = 250;
searchrate = 24;
DNArate = 5;
playmode = "player";
mincells = 60;
zellen = new Array();
zelldistanzen = new Array();
searchrate_count = 0;
DNArate_count = 0;
cur_select = 50;
freecell = null;
activecells = 0;
activefood = 0;
cellina = 0;
hides = new Array();
maxhides = 4;
hidesize = 100;
maxfood = 60;
futter = new Array();
startfood = 30;
Petri = new petri();
addChild(Petri);
SelectRing = new select_ring();
Petri.addChild(SelectRing);
cellpanel = new cellanalyse();
addChild(cellpanel);
cellpanel.y = 100;
cellpanel.x = 20;
i = 0;
while (i <= maxhides) {
thehide = new versteck();
Petri.addChild(thehide);
hides[i] = thehide;
i++;
};
i = 0;
while (i <= maxfood) {
essen = new food(Petri);
Petri.addChild(essen);
futter[i] = essen;
futter[i].x = rand(-800, 800);
futter[i].y = rand(-800, 800);
futter[i].me_active = false;
futter[i].visible = false;
i++;
};
i = startfood;
while (i-- > 0) {
futter[i].me_active = true;
futter[i].visible = true;
};
i = 0;
while (i <= maxzellen) {
zelle = new cell(i, Petri, cellpanel, playmode);
Petri.addChild(zelle);
zellen[i] = zelle;
zellen[i].x = rand(-800, 800);
zellen[i].y = rand(-800, 800);
i++;
};
addEventListener(Event.ENTER_FRAME, main);
Petri.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
Petri.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
Petri.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
}
}
}//package cellgame_cs5_fla
Section 3
//cell (cell)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class cell extends MovieClip {
public var body:MovieClip;
public var schwanzflosse:MovieClip;
public var anw1_gen:Array;
public var anw2_gen:Array;
public var bind_gen:Array;
public var wert1_gen:Array;
public var wert2_gen:Array;
public var do_gen:Array;
public var who_gen:Array;
private var next_predator:MovieClip;
private var dist_predator:int;
private var next_scavanger:MovieClip;
private var dist_scavanger:int;
private var next_foreigner:MovieClip;
private var dist_foreigner:int;
private var next_relative:MovieClip;
private var dist_relative:int;
private var next_horny:MovieClip;
private var dist_horny:int;
private var next_cell:MovieClip;
private var dist_cell:int;
private var next_food:MovieClip;
private var dist_food:int;
private var next_hide:MovieClip;
private var dist_hide:int;
private var next_player:MovieClip;
private var dist_player:int;
private var next_cursor:MovieClip;
private var dist_cursor:int;
private var ziel:MovieClip;
private var close_food:int;
private var close_cells:int;
private var close_predator:int;
private var close_scavanger:int;
private var close_horny:int;
private var close_foreigner:int;
private var close_relative:int;
public var player_m:Boolean;
public var cursor_m:Boolean;
private var me_personal_name:String;
private var me_typ:String;// = "Assfresser"
public var me_predator:Boolean;
public var me_horny:Boolean;
public var me_group:int;// = 0
public var me_active:Boolean;// = false
private var me_state:String;// = ""
private var me_ziel:String;// = ""
public var my_life:int;// = 100
public var my_strength:int;// = 1
public var my_desire:Number;// = 0
public var my_hunger:Number;// = 0
public var my_sleepiness:Number;// = 0
public var my_score:Number;// = 0
public var my_fitness:Number;// = 0
public var my_age:Number;// = 1
public var my_childs:int;// = 0
public var my_attacks:int;// = 0
public var my_kills:int;// = 0
public var my_eaten:int;// = 0
private var my_attackcooldown:int;// = 0
private var my_foodcooldown:int;// = 0
public var my_generation:int;// = 0
public var gr1:int;// = 0
public var gr2:int;// = 0
private var id:int;
public var i:int;
private var playmode:String;
private var dna_counter:int;// = 0
private var dna_reset:int;// = 12
private var animation_cooldown:int;// = 0
private var animation_avaible:Boolean;// = true
private var schwanzflosse_counter:Number;// = 0
private var schwanzflosse_reset:int;// = 27
private var xscale:Number;// = 0.7
private var yscale:Number;// = 0.7
public var grow:Number;// = 70
private var maxgrow:Number;// = 300
private var maxspeed:Number;// = 6
private var speed:Number;// = 0
private var setRotation:Number;// = 0
public var hspeed:Number;// = 0
public var vspeed:Number;// = 0
private var Petri:MovieClip;
private var cellpanel:MovieClip;
public function cell(_arg1:int, _arg2:MovieClip, _arg3:MovieClip, _arg4:String):void{
anw1_gen = new Array();
anw2_gen = new Array();
bind_gen = new Array();
wert1_gen = new Array();
wert2_gen = new Array();
do_gen = new Array();
who_gen = new Array();
super();
id = _arg1;
i = id;
genDNA();
Petri = _arg2;
cellpanel = _arg3;
playmode = _arg4;
this.rotation = rand(-180, 180);
addEventListener(MouseEvent.CLICK, cellclick);
}
public function cellclick(_arg1){
MovieClip(root).cur_select = id;
trace(("clicked" + id));
}
public function resetstats():void{
genDNA();
my_life = 100;
my_hunger = 0;
my_sleepiness = 0;
me_horny = false;
my_childs = 0;
my_score = 0;
my_age = 0;
my_eaten = 0;
my_attacks = 0;
my_strength = 0;
my_score = 0;
my_generation = 0;
my_desire = 0;
my_kills = 0;
grow = 70;
this.x = rand(-800, 800);
this.y = rand(-800, 800);
gr1 = 0;
gr2 = 0;
}
public function runCELL():void{
var _local1:int;
var _local2:Number;
var _local3:int;
var _local4:int;
my_desire = (my_desire + 0.05);
my_hunger = (my_hunger + 0.2);
my_sleepiness = (my_sleepiness + 0.15);
if (my_desire > 75){
me_horny = true;
};
if (my_hunger >= 99){
my_hunger = 100;
hurt(1);
};
if (my_life < 0){
die();
};
if (speed < 0){
speed = 0;
};
if (grow < maxgrow){
xscale = (grow / 100);
yscale = xscale;
this.scaleX = xscale;
this.scaleY = yscale;
} else {
grow = (grow + 0.2);
};
if (animation_cooldown > 0){
animation_cooldown--;
} else {
animation_avaible = true;
};
_local1 = distanz(this.x, this.y, Petri.drawings.x, Petri.drawings.y);
if (_local1 > 1450){
this.rotation = (this.rotation - 180);
if (speed < 1){
speed = 1;
};
if (speed > 5){
hurt(10);
};
if (speed > 3){
hurt(5);
};
};
this.schwanzflosse.gotoAndStop(Math.round(schwanzflosse_counter));
schwanzflosse_counter = (schwanzflosse_counter + (speed / 2));
if (schwanzflosse_counter > schwanzflosse_reset){
schwanzflosse_counter = 0;
};
this.x = (this.x + (Math.cos((((this.rotation - 90) * Math.PI) / 180)) * speed));
this.y = (this.y + (Math.sin((((this.rotation - 90) * Math.PI) / 180)) * speed));
if (speed > 0){
speed = (speed - 0.1);
};
if (my_foodcooldown <= 0){
if ((((dist_food < 40)) && (!((next_food == null))))){
if (next_food.me_active == true){
eat();
};
};
} else {
my_foodcooldown = (my_foodcooldown - 1);
};
if (me_horny == true){
if (next_horny != null){
_local3 = distanz(this.x, this.y, next_horny.x, next_horny.y);
if (_local3 < 40){
MovieClip(root).melt_DNA(this.id, next_horny.id);
};
};
};
if (dna_counter > dna_reset){
runDNA();
dna_counter = 0;
} else {
dna_counter++;
};
switch (me_state){
default:
break;
case "moveto":
if (ziel != null){
lookat(ziel.x, ziel.y, false);
if (speed < maxspeed){
speed = (speed + 0.2);
};
};
break;
case "eat":
if (next_food != null){
lookat(next_food.x, next_food.y, false);
if (speed < maxspeed){
speed = (speed + 0.2);
};
};
break;
case "fuck":
if (next_horny != null){
lookat(next_horny.x, next_horny.y, false);
if (speed < maxspeed){
speed = (speed + 0.2);
};
};
break;
case "avoid":
if (ziel != null){
lookat(ziel.x, ziel.y, true);
if (speed < maxspeed){
speed = (speed + 0.2);
};
};
break;
case "hide":
if (next_hide != null){
};
break;
case "attack":
if (ziel != null){
lookat(ziel.x, ziel.y, false);
if (my_attackcooldown < 0){
_local4 = distanz(this.x, this.y, ziel.x, ziel.y);
if (_local4 < 40){
ziel.hurt(5);
my_hunger = 0;
my_life = (my_life + 10);
if (my_life > 100){
my_life = 100;
};
my_strength++;
my_attacks++;
my_desire = (my_desire + 5);
ziel.my_strength--;
ziel.hurt(20);
if (grow < maxgrow){
grow = (grow + 1);
};
if (ziel.my_strength < 0){
ziel.hurt(50);
if (ziel.my_life < 1){
my_kills++;
};
};
if (my_attacks > my_eaten){
me_predator = true;
} else {
me_predator = false;
};
this.body.gotoAndPlay("attack");
my_attackcooldown = 24;
};
};
if (speed < maxspeed){
speed = (speed + 0.2);
};
};
break;
};
my_attackcooldown--;
_local2 = WinkelDifferenz(this.rotation, setRotation);
if ((((_local2 < -3)) || ((_local2 > 3)))){
if (_local2 < 0){
_local2 = -3;
} else {
_local2 = 3;
};
this.rotation = (this.rotation + _local2);
} else {
this.rotation = (this.rotation + _local2);
};
}
function WinkelDifferenz(_arg1, _arg2){
var _local3:* = (_arg2 - _arg1);
if (_local3 > 180){
return ((((_local3 + 180) % 360) - 180));
};
if (_local3 < -180){
return ((((_local3 - 180) % 360) + 180));
};
return ((_local3 % 360));
}
function distanz(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{
var _local5:int = (_arg1 - _arg3);
var _local6:int = (_arg2 - _arg4);
var _local7:int = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
return (_local7);
}
private function runDNA():void{
var _local1:Boolean;
var _local2:Boolean;
var _local3:Boolean;
i = 10;
while (i-- > 0) {
_local1 = false;
_local2 = false;
_local3 = false;
_local1 = bedingungs_chromosome(i, false, wert1_gen[i]);
_local2 = bedingungs_chromosome(i, true, wert1_gen[i]);
switch (bind_gen[i]){
default:
_local1 = true;
if (_local1){
_local3 = true;
};
break;
case 1:
_local1 = ((true) || ((_local2 == true)));
if (_local1){
_local3 = true;
};
break;
case 2:
_local1 = ((true) && ((_local2 == true)));
if (_local1){
_local3 = true;
};
break;
};
if (_local3 == true){
me_state = befehls_chromosome(i);
who_chromosome(i);
i = 0;
};
};
}
private function lookat(_arg1:int, _arg2:int, _arg3:Boolean=false){
setRotation = -((Math.atan2((this.x - _arg1), (this.y - _arg2)) / (Math.PI / 180)));
setRotation = setRotation;
}
public function genDNA():void{
i = 0;
while (i <= 10) {
setCHROMOSOME(i);
i++;
};
}
private function rand(_arg1:Number=0, _arg2:Number=1):Number{
return ((Math.floor((Math.random() * ((1 + _arg2) - _arg1))) + _arg1));
}
public function tintgroup(){
trace(("tint_group" + me_group));
switch (me_group){
default:
tintme(0, 0);
break;
case 1:
tintme(0xFF0000, 0.6);
break;
case 2:
tintme(1044480, 0.6);
break;
case 3:
tintme(0xFF, 0.6);
break;
case 4:
tintme(0xFFFFFF, 0.6);
break;
case 5:
tintme(0xFF0000, 0.6);
break;
case 6:
tintme(0xF000FF, 0.6);
break;
case 7:
tintme(0xFFB400, 0.6);
break;
case 8:
tintme(16368885, 0.6);
break;
case 9:
tintme(61695, 0.6);
break;
case 10:
tintme(12579968, 0.6);
break;
};
}
public function setCHROMOSOME(_arg1:int):void{
var _local2:int;
i = 0;
while (i <= 10) {
anw1_gen[i] = rand(1, 20);
_local2 = rand(1, 2);
if (_local2 == 1){
anw2_gen[i] = rand(1, 20);
bind_gen[i] = rand(1, 2);
} else {
anw2_gen[i] = 0;
bind_gen[i] = 0;
};
wert1_gen[i] = rand(-100, 100);
wert2_gen[i] = rand(-100, 100);
do_gen[i] = rand(1, 6);
who_gen[i] = rand(1, 10);
i++;
};
}
public function writeDNA():String{
var _local1 = "";
i = 0;
while (i <= 10) {
_local1 = ((((((((((((((_local1 + anw1_gen[i]) + "|") + anw2_gen[i]) + "|") + bind_gen[i]) + "|") + wert1_gen[i]) + "|") + wert2_gen[i]) + "|") + do_gen[i]) + "|") + who_gen[i]) + "| \n");
i++;
};
return (_local1);
}
public function reset_distinfo():void{
next_food = null;
dist_food = 999999;
next_predator = null;
dist_predator = 999999;
next_scavanger = null;
dist_scavanger = 999999;
next_foreigner = null;
dist_foreigner = 999999;
next_relative = null;
dist_relative = 999999;
next_horny = null;
dist_horny = 999999;
next_cell = null;
dist_cell = 999999;
close_food = 0;
close_cells = 0;
close_predator = 0;
close_scavanger = 0;
close_horny = 0;
close_foreigner = 0;
close_relative = 0;
}
public function checkcell(_arg1:MovieClip, _arg2:int):void{
if (_arg2 < dist_cell){
next_cell = _arg1;
dist_cell = _arg2;
};
if (_arg1.me_predator == true){
if (_arg2 < dist_predator){
next_predator = _arg1;
dist_predator = _arg2;
};
if (_arg2 < 1000){
close_predator++;
};
} else {
if (_arg2 < dist_scavanger){
next_scavanger = _arg1;
dist_scavanger = _arg2;
};
if (_arg2 < 1000){
close_scavanger++;
};
};
if (_arg1.me_horny == true){
if (_arg2 < dist_horny){
next_horny = _arg1;
dist_horny = _arg2;
};
if (_arg2 < 1000){
close_horny++;
};
};
if (_arg1.me_group == me_group){
if (_arg2 < dist_relative){
next_relative = _arg1;
dist_relative = _arg2;
};
if (_arg2 < 1000){
close_relative++;
};
} else {
if (_arg2 < dist_foreigner){
next_foreigner = _arg1;
dist_foreigner = _arg2;
};
if (_arg2 < 1000){
close_foreigner++;
};
};
if (_arg2 < 100){
close_cells++;
};
}
public function checkfood(_arg1:MovieClip, _arg2:int){
if (_arg2 < dist_food){
next_food = _arg1;
dist_food = _arg2;
};
if (_arg2 < 100){
close_food++;
};
}
public function tintme(_arg1:Number, _arg2:Number):void{
var _local3:ColorTransform = new ColorTransform();
_local3.color = _arg1;
_local3.redOffset = (_local3.redOffset * _arg2);
_local3.greenOffset = (_local3.greenOffset * _arg2);
_local3.blueOffset = (_local3.blueOffset * _arg2);
_local3.redMultiplier = (1 - (_local3.redOffset / 0xFF));
_local3.greenMultiplier = (1 - (_local3.greenOffset / 0xFF));
_local3.blueMultiplier = (1 - (_local3.blueOffset / 0xFF));
this.transform.colorTransform = _local3;
}
public function die():void{
this.body.gotoAndPlay("sterben");
me_active = false;
MovieClip(root).placefood(this.x, this.y);
this.visible = false;
}
public function hurt(_arg1:int=1):void{
my_life = (my_life - _arg1);
this.body.gotoAndPlay(2);
animation_cooldown = 30;
animation_avaible = false;
}
public function eat():void{
if (my_life > 2){
my_hunger = 0;
my_life = 100;
my_desire = (my_desire + 10);
my_strength++;
my_eaten++;
if (my_eaten > my_attacks){
me_predator = false;
} else {
me_predator = true;
};
if (grow < maxgrow){
grow = (grow + 1);
};
this.body.gotoAndPlay("fressen");
my_foodcooldown = 50;
animation_cooldown = 30;
animation_avaible = false;
next_food.bitten();
};
}
public function showinfos():void{
Petri.drawings.graphics.clear();
Petri.drawings.graphics.lineStyle(1, 0xFF, 0.5);
Petri.drawings.graphics.moveTo(this.x, this.y);
Petri.drawings.graphics.lineTo(Petri.drawings.mouseX, Petri.drawings.mouseY);
if (next_cell != null){
Petri.drawings.graphics.lineStyle(3, 0xFFFFFF, 0.5);
Petri.drawings.graphics.moveTo(this.x, this.y);
Petri.drawings.graphics.lineTo(next_cell.x, next_cell.y);
};
if (next_food != null){
Petri.drawings.graphics.lineStyle(4, 0xFF00, 0.6);
Petri.drawings.graphics.moveTo(this.x, this.y);
Petri.drawings.graphics.lineTo(next_food.x, next_food.y);
};
if (next_predator != null){
Petri.drawings.graphics.lineStyle(4, 0xFF0000, 0.6);
Petri.drawings.graphics.moveTo(this.x, this.y);
Petri.drawings.graphics.lineTo(next_predator.x, next_predator.y);
};
if (next_scavanger != null){
Petri.drawings.graphics.lineStyle(4, 0xD2FF00, 0.6);
Petri.drawings.graphics.moveTo(this.x, this.y);
Petri.drawings.graphics.lineTo(next_scavanger.x, next_scavanger.y);
};
if (next_hide != null){
Petri.drawings.graphics.lineStyle(8, 0xD2FF00, 0.1);
Petri.drawings.graphics.moveTo(this.x, this.y);
Petri.drawings.graphics.lineTo(next_hide.x, next_hide.y);
};
if (next_horny != null){
Petri.drawings.graphics.lineStyle(4, 0xFF00F6, 0.6);
Petri.drawings.graphics.moveTo(this.x, this.y);
Petri.drawings.graphics.lineTo(next_horny.x, next_horny.y);
};
if (next_relative != null){
Petri.drawings.graphics.lineStyle(4, 65460, 0.6);
Petri.drawings.graphics.moveTo(this.x, this.y);
Petri.drawings.graphics.lineTo(next_relative.x, next_relative.y);
};
if (next_foreigner != null){
Petri.drawings.graphics.lineStyle(4, 0xFFA800, 0.6);
Petri.drawings.graphics.moveTo(this.x, this.y);
Petri.drawings.graphics.lineTo(next_foreigner.x, next_foreigner.y);
};
cellpanel.cellinfo.text = ((((((((((((((((((((((((((((((((("Zelle[" + i) + "] Nummer:") + id) + "\n\nLeben: ") + Math.round(my_life)) + "\nHunger: ") + Math.round(my_hunger)) + "\nMüdigkeit: ") + Math.round(my_sleepiness)) + "\nTrieb: ") + Math.round(my_desire)) + "\n\nAlter: ") + Math.round(my_age)) + "\nPunkte: ") + Math.round(my_score)) + "\nFitness: ") + Math.round(my_fitness)) + "\n\nGeneration: ") + my_generation) + "\nKinder: ") + my_childs) + "\nGruppe: ") + me_group) + "\n\nAngriffe: ") + my_attacks) + "\nMorde: ") + my_kills) + "\nGegessen: ") + my_eaten) + "\n\ntyp: ") + me_typ) + "\n\nVerdauung: ") + my_foodcooldown);
cellpanel.dna_string.text = (("DNA-STRING:\n***********\n" + writeDNA()) + "***********");
}
private function who_chromosome(_arg1:int):void{
var _local2:int = who_gen[_arg1];
ziel = null;
me_ziel = "kein Ziel";
switch (_local2){
default:
break;
case 1:
if (next_cell != null){
ziel = next_cell;
me_ziel = "Nächste Zelle";
};
break;
case 2:
if (next_predator != null){
ziel = next_predator;
me_ziel = "Nächster Räuber";
};
break;
case 3:
if (next_scavanger != null){
ziel = next_scavanger;
me_ziel = "Nächster Assfresser";
};
break;
case 4:
if (next_relative != null){
ziel = next_relative;
me_ziel = "Nächster Verwandter";
};
break;
case 5:
if (next_foreigner != null){
ziel = next_foreigner;
me_ziel = "Nächster Fremdling";
};
break;
case 6:
if (next_horny != null){
ziel = next_horny;
me_ziel = "Nächste geile Zelle";
};
break;
};
}
private function bedingungs_chromosome(_arg1:int, _arg2:Boolean, _arg3:int):Boolean{
var _local4:int;
if (_arg2 == true){
_local4 = anw1_gen[_arg1];
} else {
_local4 = anw2_gen[_arg1];
};
switch (_local4){
default:
return (true);
case 1:
return (true);
case 2:
if (next_predator != null){
if (_arg3 < 0){
if (dist_predator < _arg3){
return (true);
};
} else {
if (dist_predator > _arg3){
return (true);
};
};
};
break;
case 3:
if (next_scavanger != null){
if (_arg3 < 0){
if (dist_scavanger < _arg3){
return (true);
};
} else {
if (dist_scavanger > _arg3){
return (true);
};
};
};
break;
case 4:
if (next_relative != null){
if (_arg3 < 0){
if (dist_relative < _arg3){
return (true);
};
} else {
if (dist_relative > _arg3){
return (true);
};
};
};
break;
case 5:
if (next_foreigner != null){
if (_arg3 < 0){
if (dist_foreigner < _arg3){
return (true);
};
} else {
if (dist_foreigner > _arg3){
return (true);
};
};
};
break;
case 6:
if (next_horny != null){
if (_arg3 < 0){
if (dist_relative < _arg3){
return (true);
};
} else {
if (dist_horny > _arg3){
return (true);
};
};
};
break;
case 7:
if (next_food != null){
if (_arg3 < 0){
if (dist_food < _arg3){
return (true);
};
} else {
if (dist_food > _arg3){
return (true);
};
};
};
break;
case 8:
if (_arg3 < 0){
if (my_life < _arg3){
return (true);
};
} else {
if (my_life > _arg3){
return (true);
};
};
break;
case 9:
if (_arg3 < 0){
if (my_sleepiness < _arg3){
return (true);
};
} else {
if (my_sleepiness > _arg3){
return (true);
};
};
break;
case 10:
if (_arg3 < 0){
if (my_desire < _arg3){
return (true);
};
} else {
if (dist_relative < _arg3){
return (true);
};
};
break;
case 11:
if (_arg3 < 0){
if (close_cells < _arg3){
return (true);
};
} else {
if (close_cells > _arg3){
return (true);
};
};
break;
case 12:
if (_arg3 < 0){
if (close_relative < _arg3){
return (true);
};
} else {
if (close_relative > _arg3){
return (true);
};
};
break;
case 13:
if (_arg3 < 0){
if (close_scavanger < _arg3){
return (true);
};
} else {
if (close_scavanger > _arg3){
return (true);
};
};
break;
case 14:
if (next_hide != null){
if (_arg3 < 0){
if (dist_hide < _arg3){
return (true);
};
} else {
if (dist_hide > _arg3){
return (true);
};
};
};
break;
case 15:
if (_arg3 < 0){
if (dist_player < _arg3){
return (true);
};
} else {
if (dist_player > _arg3){
return (true);
};
};
break;
case 16:
if (_arg3 < 0){
if (dist_cursor < _arg3){
return (true);
};
} else {
if (dist_cursor > _arg3){
return (true);
};
};
break;
};
return (false);
}
private function befehls_chromosome(_arg1:int):String{
var _local2:int = do_gen[_arg1];
switch (_local2){
default:
break;
case 1:
return ("moveto");
case 2:
return ("eat");
case 3:
return ("avoid");
case 4:
return ("hide");
case 5:
return ("sleep");
case 6:
return ("attack");
case 7:
return ("fuck");
};
return ("");
}
}
}//package
Section 4
//cellanalyse (cellanalyse)
package {
import flash.display.*;
import flash.text.*;
public dynamic class cellanalyse extends MovieClip {
public var cellinfo:TextField;
public var dna_string:TextField;
}
}//package
Section 5
//food (food)
package {
import flash.display.*;
import flash.events.*;
public class food extends MovieClip {
private var foodvalue:int;
public var me_active:Boolean;// = false
private var Rspeed:Number;
private var Xspeed:Number;
private var Yspeed:Number;
private var setspeedX:Number;
private var setspeedY:Number;
private var Petri:MovieClip;
public function food(_arg1:MovieClip){
setfoodvalue(rand(1, 4));
this.rotation = rand(-180, 180);
Rspeed = rand(-8, 8);
Xspeed = rand(-5, 5);
Yspeed = rand(-5, 5);
Petri = _arg1;
}
public function setfoodvalue(_arg1:int){
foodvalue = _arg1;
this.gotoAndStop(foodvalue);
}
public function bitten(){
foodvalue = (foodvalue - 1);
if (foodvalue >= 1){
this.gotoAndStop(foodvalue);
Xspeed = rand(-3, 3);
Yspeed = rand(-3, 3);
Rspeed = rand(-8, 8);
} else {
me_active = false;
this.visible = false;
};
}
public function runfood(){
var _local1:int;
this.rotation = (this.rotation + Rspeed);
this.x = (this.x + Xspeed);
this.y = (this.y + Yspeed);
if (Xspeed > 0){
Xspeed = (Xspeed - 0.015);
} else {
Xspeed = (Xspeed + 0.015);
};
if (Yspeed > 0){
Yspeed = (Yspeed - 0.015);
} else {
Yspeed = (Yspeed + 0.015);
};
if (Rspeed < 0){
Rspeed = (Rspeed + 0.01);
} else {
Rspeed = (Rspeed - 0.01);
};
_local1 = distanz(this.x, this.y, Petri.drawings.x, Petri.drawings.y);
if (_local1 > 1450){
Xspeed = -(Xspeed);
Yspeed = -(Yspeed);
this.x = (this.x + (Xspeed * 6));
this.y = (this.y + (Yspeed * 6));
};
}
function distanz(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{
var _local5:int = (_arg1 - _arg3);
var _local6:int = (_arg2 - _arg4);
var _local7:int = Math.sqrt(((_local5 * _local5) + (_local6 * _local6)));
return (_local7);
}
private function rand(_arg1:Number=0, _arg2:Number=1):Number{
return ((Math.floor((Math.random() * ((1 + _arg2) - _arg1))) + _arg1));
}
public function placeme(_arg1:int, _arg2:int):void{
this.x = _arg1;
this.y = _arg2;
foodvalue = 1;
me_active = true;
this.visible = true;
}
}
}//package
Section 6
//petri (petri)
package {
import flash.display.*;
public dynamic class petri extends MovieClip {
public var drawings:MovieClip;
}
}//package
Section 7
//select_ring (select_ring)
package {
import flash.display.*;
public dynamic class select_ring extends MovieClip {
}
}//package
Section 8
//versteck (versteck)
package {
import flash.display.*;
public dynamic class versteck extends MovieClip {
}
}//package