Benutzer:Col. o'neill/DHD.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K Okay, das war etwas ZU leicht...^^ |
K EventHandler nur bei Bedarf zuordnen, Maus-Events nur innerhalb des Fernbedienungsfeldes |
||
| Zeile 4: | Zeile 4: | ||
* if(mw.config.get('wgPageName')==="Benutzer:Col._o'neill/Testseite2"){$('head').append($('<script>').attr('src','http://stargate-wiki.de/w/index.php?title=Benutzer:Col._o%27neill/DHD.js&action=raw&ctype=text/javascript').attr('type','text/javascript'));} | * if(mw.config.get('wgPageName')==="Benutzer:Col._o'neill/Testseite2"){$('head').append($('<script>').attr('src','http://stargate-wiki.de/w/index.php?title=Benutzer:Col._o%27neill/DHD.js&action=raw&ctype=text/javascript').attr('type','text/javascript'));} | ||
**/ | **/ | ||
//TODO: ausgewählte Symbole als tatsächliche Symbole statt Nummern, 8. und 9. Auswahlpunkt erst bei Bedarf sichtbar machen | //TODO: ausgewählte Symbole als tatsächliche Symbole statt Nummern, 8. und 9. Auswahlpunkt erst bei Bedarf sichtbar machen, ausgewählte Symbole bei SGU in Fernbedienungsfeld | ||
$('.DHDGlyph,.DHDConfirm').css('cursor','pointer'); | $('.DHDGlyph,.DHDConfirm').css('cursor','pointer'); | ||
$('.DHDResult').text('Du hast noch kein Symbol angewählt.'); | $('.DHDResult').text('Du hast noch kein Symbol angewählt.'); | ||
| Zeile 11: | Zeile 11: | ||
var address=[]; | var address=[]; | ||
var found=null; | var found=null; | ||
var w=$(".wheel"); | |||
w.css('cursor','grab'); | |||
var cX = w.offset().left + 220; | |||
var cY = w.offset().top + 220; | |||
var dragging=false; | |||
var angle1=0; | |||
var current=0; | |||
$('.DHDGalaxyChoose').append("<input type='radio' value='sg1' name='DHDgalaxy' checked='true'>für Milchstraßen-Stargates<br /><input type='radio' value='sga' name='DHDgalaxy'>für Pegasus-Stargates<br /><input type='radio' value='sgu' name='DHDgalaxy'>für Stargates der ersten Generation"); | $('.DHDGalaxyChoose').append("<input type='radio' value='sg1' name='DHDgalaxy' checked='true'>für Milchstraßen-Stargates<br /><input type='radio' value='sga' name='DHDgalaxy'>für Pegasus-Stargates<br /><input type='radio' value='sgu' name='DHDgalaxy'>für Stargates der ersten Generation"); | ||
var iLink=function(l,t){ | var iLink=function(l,t){ | ||
| Zeile 82: | Zeile 89: | ||
$('.DHDSGA,.DHDSGU').css('display','none'); | $('.DHDSGA,.DHDSGU').css('display','none'); | ||
$('.DHDSG1').css('display','block'); | $('.DHDSG1').css('display','block'); | ||
w.off(); | |||
$('.DHDSGU').off('mouseup').off('mousemove'); | |||
break; | break; | ||
case 'sga': | case 'sga': | ||
| Zeile 88: | Zeile 97: | ||
$('.DHDSG1,.DHDSGU').css('display','none'); | $('.DHDSG1,.DHDSGU').css('display','none'); | ||
$('.DHDSGA').css('display','block'); | $('.DHDSGA').css('display','block'); | ||
w.off(); | |||
$('.DHDSGU').off('mouseup').off('mousemove'); | |||
break; | break; | ||
case 'sgu': | case 'sgu': | ||
| Zeile 94: | Zeile 105: | ||
$('.DHDSG1,.DHDSGA').css('display','none'); | $('.DHDSG1,.DHDSGA').css('display','none'); | ||
$('.DHDSGU').css('display','block'); | $('.DHDSGU').css('display','block'); | ||
w.on('mousedown', function(e){ | |||
dragging = true; | |||
angle1 = Math.atan2(cY - e.pageY, e.pageX - cX); | |||
w.css('cursor','grabbing'); | |||
}); | |||
$('.DHDSGU').on('mouseup', function(){ | |||
dragging = false; | |||
w.css('cursor','grab'); | |||
var v = w.css("-ms-transform") || w.css("-webkit-transform") || w.css("transform"); | |||
if(v !== 'none') { | |||
var values = v.split('(')[1].split(')')[0].split(','); | |||
var ang = Math.round(Math.atan2(values[1], values[0])*(180/Math.PI)); | |||
}else{ | |||
var ang = 0; | |||
} | |||
current = (ang < 0) ? ang + 360 : ang; | |||
}); | |||
$('.DHDSGU').on('mousemove', function(e){ | |||
if (dragging) { | |||
var angle2 = Math.atan2(cY - e.pageY, e.pageX - cX); | |||
var a=current+(angle1-angle2)*(180/Math.PI); | |||
w.css('transform', 'rotate('+a+'deg)'); | |||
w.css('-webkit-transform', 'rotate('+a+'deg)'); | |||
w.css('-ms-transform', 'rotate('+a+'deg)'); | |||
} | |||
}); | |||
break; | break; | ||
} | } | ||
| Zeile 149: | Zeile 186: | ||
$('.DHDResult').text('Du hast noch kein Symbol angewählt.'); | $('.DHDResult').text('Du hast noch kein Symbol angewählt.'); | ||
$(".DHDReset").css("display","none"); | $(".DHDReset").css("display","none"); | ||
}); | }); | ||
Version vom 16. Februar 2015, 14:58 Uhr
/**
* JS-Skript für interaktives DHD
* Für Import des Skripts einfach folgende Zeile (ohne den Stern am Anfang natürlich) in der eigenen Common.js einfügen:
* if(mw.config.get('wgPageName')==="Benutzer:Col._o'neill/Testseite2"){$('head').append($('<script>').attr('src','http://stargate-wiki.de/w/index.php?title=Benutzer:Col._o%27neill/DHD.js&action=raw&ctype=text/javascript').attr('type','text/javascript'));}
**/
//TODO: ausgewählte Symbole als tatsächliche Symbole statt Nummern, 8. und 9. Auswahlpunkt erst bei Bedarf sichtbar machen, ausgewählte Symbole bei SGU in Fernbedienungsfeld
$('.DHDGlyph,.DHDConfirm').css('cursor','pointer');
$('.DHDResult').text('Du hast noch kein Symbol angewählt.');
var dialing=false;
var counter=0;
var address=[];
var found=null;
var w=$(".wheel");
w.css('cursor','grab');
var cX = w.offset().left + 220;
var cY = w.offset().top + 220;
var dragging=false;
var angle1=0;
var current=0;
$('.DHDGalaxyChoose').append("<input type='radio' value='sg1' name='DHDgalaxy' checked='true'>für Milchstraßen-Stargates<br /><input type='radio' value='sga' name='DHDgalaxy'>für Pegasus-Stargates<br /><input type='radio' value='sgu' name='DHDgalaxy'>für Stargates der ersten Generation");
var iLink=function(l,t){
return $('<a>').attr('href','http://stargate-wiki.de/wiki/'+encodeURI(l)).attr('title',l).text(t||l);
};
var stockSG1=[
{'name':iLink('Othala'),'addr':'11,27,23,16,33,03,09,01'},
{'name':iLink('Lantia'),'addr':'19,21,02,16,15,08,20,01'},
{'name':iLink('Latona'),'addr':'16,34,28,12,04,07,01'},
{'name':iLink('P2X-338'),'addr':'20,21,05,19,04,25'},
{'name':iLink('P2X-555'),'addr':'28,08,16,33,13,31,01'},
{'name':iLink('P34-353J'),'addr':'38,09,28,15,35,03,01'},
{'name':iLink("K'Tau"),'addr':'18,02,30,12,26,33,01'},
{'name':iLink('P3W-451'),'addr':'09,02,23,15,37,20,01'},
{'name':iLink('P3X-116]'),'addr':'21,13,26,17,31,09,01'},
{'name':iLink('P3X-118'),'addr':'06,26,34,37,17,21,01'},
{'name':iLink('P3X-562'),'addr':'03,28,09,35,24,32,01'},
{'name':iLink('P3X-729'),'addr':'29,08,18,22,04,25,01'},
{'name':iLink('P3X-774'),'addr':'09,19,26,17,22,05,01'},
{'name':iLink('P3X-797'),'addr':'26,02,33,24,10,32,01'},
{'name':iLink('Cimmeria'),'addr':'11,35,22,17,06,26,01'},
{'name':iLink('Carthago'),'addr':'29,08,18,22,04,25,01'},
{'name':iLink('Argos'),'addr':'24,04,20,09,15,29,01'},
{'name':iLink('P4A-771'),'addr':'27,07,15,32,12,30,01'},
{'name':iLink('P4G-881'),'addr':'09,02,23,32,12,30,01'},
{'name':iLink('P4X-377'),'addr':'25,08,18,29,04,22,01'},
{'name':iLink('P5C-353'),'addr':'27,07,15,32,12,30,01'},
{'name':iLink('Edora'),'addr':'28,24,07,09,15,03,01'},
{'name':iLink('Kheb'),'addr':'26,35,06,08,23,14,01'},
{'name':iLink('P9C-372'),'addr':'25,08,18,29,04,22,01'},
{'name':iLink('Heliopolis'),'addr':'27,07,15,32,12,30,01'},
{'name':iLink('PB5-926'),'addr':'12,36,23,18,07,27,01'},
{'name':iLink('Camelot (Ort)','Camelot'),'addr':'20,02,35,08,26,15,01'},
{'name':iLink('Hanka'),'addr':'21,13,26,17,05,37,01'},
{'name':iLink('Abydos'),'addr':'27,07,15,32,12,30,00'},
{'name':iLink('Chulak'),'addr':'09,02,23,15,37,20,07'},
{'name':iLink('Dakara'),'addr':'16,28,03,08,33,04,01'},
{'name':'die '+iLink('Erde'),'addr':'28,26,05,36,11,29,01'},
{'name':iLink('Erebus'),'addr':'22,32,04,27,23,38,01'},
{'name':iLink('Euronda'),'addr':'30,27,09,07,19,16,01'},
{'name':iLink('Euronda'),'addr':'30,02,27,15,37,20,01'},
{'name':iLink('Martins Planet'),'addr':'24,12,32,29,11,34,01'},
{'name':'den '+iLink('NID-Stützpunkt'),'addr':'35,16,03,19,28,15,01'},
{'name':iLink('Praklarush Taonas'),'addr':'29,03,31,34,05,17,01'},
{'name':'den '+iLink('Sangreal-Planet','Sangreal-Planeten'),'addr':'30,19,34,09,33,18,01'},
{'name':iLink('Tollana'),'addr':'04,29,08,22,18,25,01'},
{'name':iLink('Vorash'),'addr':'38,09,28,35,03,37,01'}
];
var stockSGA=[
{'name':iLink('M4X-337'),'addr':'02,05,15,08,31,33,19'},
{'name':iLink('Athos'),'addr':'10,07,34,26,28,20,19'},
{'name':'den '+iLink('Heimatplanet (Genii)','Heimatplaneten')+' der '+iLink('Genii'),'addr':'36,15,13,24,03,23,19'},
{'name':iLink('Hoff'),'addr':'31,24,09,26,15,05,19'},
{'name':iLink('Lucius Luvin','Lucius Luvins')+' '+iLink('Planet (SGA 3x03)','Planeten'),'addr':'01,23,30,32,22,18,19'},
{'name':iLink('Sateda'),'addr':'27,24,18,04,15,34,19'},
{'name':iLink('M65-PL8'),'addr':'28,27,31,16,33,17,19'},
{'name':iLink('P3M-736'),'addr':'34,05,25,11,03,01,19'},
{'name':'die '+iLink('Erde'),'addr':'26,27,16,12,30,31,03,19'}
];
var stockSGU=[
{'name':'den '+iLink('Planet (SGU 1x08)','Dschungelplaneten'),'addr':'03,34,12,07,19,10,17'},
{'name':'die '+iLink('Erde'),'addr':'10,15,20,26,28,13,18,06,30'}
];
var stock=stockSG1;
$("input[name='DHDgalaxy']").change(function(){
alert('Der GalaxySwitcher ist im Moment noch im Aufbau und Nicht-Milchstraßen-Anwahlen noch nicht möglich!');
switch($(this).val()){
case 'sg1':
stock=stockSG1;
$('.DHDUrspr').text('der Erde');
$('.DHDSGA,.DHDSGU').css('display','none');
$('.DHDSG1').css('display','block');
w.off();
$('.DHDSGU').off('mouseup').off('mousemove');
break;
case 'sga':
stock=stockSGA;
$('.DHDUrspr').text('von Atlantis');
$('.DHDSG1,.DHDSGU').css('display','none');
$('.DHDSGA').css('display','block');
w.off();
$('.DHDSGU').off('mouseup').off('mousemove');
break;
case 'sgu':
stock=stockSGU;
$('.DHDUrspr').text('der Destiny');
$('.DHDSG1,.DHDSGA').css('display','none');
$('.DHDSGU').css('display','block');
w.on('mousedown', function(e){
dragging = true;
angle1 = Math.atan2(cY - e.pageY, e.pageX - cX);
w.css('cursor','grabbing');
});
$('.DHDSGU').on('mouseup', function(){
dragging = false;
w.css('cursor','grab');
var v = w.css("-ms-transform") || w.css("-webkit-transform") || w.css("transform");
if(v !== 'none') {
var values = v.split('(')[1].split(')')[0].split(',');
var ang = Math.round(Math.atan2(values[1], values[0])*(180/Math.PI));
}else{
var ang = 0;
}
current = (ang < 0) ? ang + 360 : ang;
});
$('.DHDSGU').on('mousemove', function(e){
if (dragging) {
var angle2 = Math.atan2(cY - e.pageY, e.pageX - cX);
var a=current+(angle1-angle2)*(180/Math.PI);
w.css('transform', 'rotate('+a+'deg)');
w.css('-webkit-transform', 'rotate('+a+'deg)');
w.css('-ms-transform', 'rotate('+a+'deg)');
}
});
break;
}
});
$('.DHDGlyph').click(function(){
if(counter<9){
var GNum=$(this).attr('id').substr(4,2);
if($.inArray(GNum, address)!==-1){
alert("Du hast dieses Symbol schon ausgewählt - es kann nicht zwei Mal in einer Stargate-Adresse vorkommen!");
}else{
counter++;
if(!dialing){
$('.DHDResult').text("Du musst sieben bis neun Symbole anwählen und dann mit der roten Mittelscheibe bestätigen. Ausgewählte Symbole:");
$(".DHDResList").css("display","block");
$(".DHDReset").css("display","inline");
$('.DHDResList li').text('');
dialing=true;
}
$(".DHDResList li:nth-child("+counter+")").text(GNum+" ");
address.push(GNum);
}
}else{
alert("Whoa, whoa, nicht so viel... Eine Stargate-Adresse kann nur bis zu neun Symbolen haben!");
}
});
$('.DHDConfirm').click(function(){
if(counter>=7){
if(address[8]){
var m=[17,21,31,35,24,11];
if((address[0]===06)&&($.inArray(address[1], m)!==-1)&&($.inArray(address[2], m)!==-1)&&($.inArray(address[3], m)!==-1)&&($.inArray(address[4], m)!==-1)&&($.inArray(address[5], m)!==-1)&&(address[6]===05)&&($.inArray(address[7], m)!==-1)&&(address[8]===01)) found="die [[Destiny]]";
}else{
for(var i=0; i<stock.length; i++){
if(address.toString()===stock[i].addr) found=stock[i].name;
}
}
if(found!==null){
$('.DHDResult').text('Du hast ').append(found).append(' angewählt. Stelle Dir nun einen ').append(iLink("Kawoosh")).append(' vor. :D');
}else{
$('.DHDResult').text('Zu Deinen angewählten Symbolen ('+address.toString()+') konnte keine passende Adresse gefunden werden. Versuch es nochmal - Du findest eine Liste aller bekannten Toradressen unter ').append(iLink('Liste von Toradressen')).append('.');
}
counter=0;
found=null;
address=[];
dialing=false;
}else{
alert("Du musst sieben bis neun Symbole auswählen!");
}
});
$('.DHDReset').click(function(){
counter=0;
address=[];
dialing=false;
$('.DHDResList li').text('');
$('.DHDResList').css('display','none');
$('.DHDResult').text('Du hast noch kein Symbol angewählt.');
$(".DHDReset").css("display","none");
});